Migrasi Laravel kanggo pemrograman lanjut karo kerangka Laravel php

Migrasi Laravel minangka unsur dhasar kanggo nggarap Laravel, ngidini manajemen skema database sing efisien.
Dina iki kita bakal nliti limang conto sing luwih maju, sing mbantu ngunggahake tingkat pemrograman lan bisa nyederhanakake karya sampeyan.
5 menit
Sampeyan kudu ngatur jumlah gedhe saka data ing a database ?, loro kanggo njaga supaya lan kanggo ngapusi wong-wong mau kanthi cepet lan generate tabel utawa laporan gampang ?. Ana kancamu sing ngandhani Laravel Eloquent, dirancang kanggo proyèk penting, intrigued, sampeyan mutusaké kanggo nyoba kanggo ngerti apa iku bisa nengen kanggo sampeyan utawa ora. Siji-sijine kekurangane, yaiku sampeyan ora ngerti cara kerjane migrasi laravel, karo kerangka php laravel utawa malah apa siji migrasi laravel nambah kolom.
Ya, aku seneng banget ngandhani yen sampeyan wis teka ing papan sing tepat ing wektu sing tepat: ing ngisor iki, nyatane, aku bakal menehi sampeyan kabeh pandhuan sing dibutuhake kanggo njupuk kauntungan saka kerangka php laravel, lan saka migrasi laravel kanggo nggawe lan ngatur dhewe database, supaya sampeyan bisa nggawe pangertèn logis data sampeyan. Aja kuwatir, iki dudu operasi sing rumit, sing penting yaiku duwe ide sing jelas babagan cara ngatur lan nyusun kabeh: sampeyan bakal sinau apa sing kudu diwiwiti sajrone artikel iki.
Dadi, apa sampeyan mikir babagan njupuk tindakan saiki? Lungguh kanthi kepenak, ngukir sawetara menit kanggo awake dhewe lan waca kabeh sing dakkandhakake babagan nggunakake produk sing apik iki framework: Aku manawa, ing mburi guide, sampeyan bakal sampurna bisa nggawe lan ngatur a database karo migrasi laravel. Sawise ujar manawa, sing bisa daklakoni yaiku muga-muga sampeyan seneng maca lan kerja sing apik!
Sadurunge maca tips iki babagan pemrograman majeng karo kerangka laravel php, Aku nyaranake sampeyan maca apa migrasi laravel, lan sawetara praktik paling apik.
Nambah indeks teks lengkap
Panelusuran majeng ing dataset gedhe mbutuhake indeks sing efisien. Laravel ngidini nambah indeks teks lengkap, sing utamané migunani kanggo fungsi telusuran:
Skema::table('posts', function (Blueprint $tabel) {
DB::statement('ATUR TABEL kiriman TAMBAHKAN FULLTEXT fulltext_index(judul, isi)');
});
Kanthi nambah indeks teks lengkap fulltext_index
menyang kolom title
e content
, nggoleki frase ing kolom kasebut bakal cepet banget.
Nyetel nilai standar nggunakake SQL mentah
Nggunakake pitakon SQL mentah ing migrasi ngidini panggunaan fungsionalitas database luwih maju, kayata nyetel nilai standar liwat fungsi SQL:
Skema::table('users', function (Blueprint $tabel) {
DB:: statement("UBAH TABLE pangguna TAMBAHKAN COLUMN sign_up_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP");
});
Ing kasus iki, nggunakake CURRENT_TIMESTAMP
, ing sign_up_date
kolom sing mentas ditambahake kanthi otomatis nampa tanggal lan wektu saiki minangka nilai standar.
Nambahake kolom kanthi UUID unik
UUID minangka cara sing apik kanggo njamin keunikan rekaman ing skala global. Laravel nggampangake kanggo nambah kolom kaya iki:
Skema::tabel('invoice', function (Blueprint $tabel) {
$table->uuuid('invoice_id')->unique();
});
Kanthi nambahake invoice_id
kolom karo jinis UUID lan nyetel minangka unik njamin uniqueness kuwat saka pengenal ing database.
migrasi laravel nambah kolom
Kanggo nambah kolom anyar menyang tabel sing wis ana nggunakake migrasi Laravel 11, tindakake langkah iki:
Gawe migrasi anyar nganggo kolom tambah migrasi laravel:
jalanake printah ing ngisor iki ing terminal sampeyan, ngganti column_name
kanthi jeneng kolom anyar e table_name
kanthi jeneng tabel sing pengin diowahi:
php artisan make:migration add_column_name_to_table_name --table=table_name
Sunting file migrasi:
bukak file migrasi sing digawe sing ana ing direktori database/migrations
. Ing cara up
, gunakake metode Schema::table
kanggo nambah kolom anyar. Contone:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddColumnNameToTableName extends Migration
{
public function up()
{
Schema::table('table_name', function (Blueprint $table) {
$table->string('column_name')->nullable();
});
}
public function down()
{
Schema::table('table_name', function (Blueprint $table) {
$table->dropColumn('column_name');
});
}
}
Nindakake migrasi:
nindakake migrasi kanggo ngetrapake owah-owahan menyang sampeyan database
php artisan migrate
Iki bakal nambah kolom anyar menyang tabel sing wis ana. Sampeyan bisa nemokake informasi luwih lengkap ing dokumentasi Laravel kanggo Migrasi
Nggunakake kolom ID eksternal
Wiwit versi 7.x, Laravel wis ngenalake cara sing disederhanakake kanggo nggawe kunci asing lan indeks nggunakake foreignIdFor
cara. Iki minangka fasilitasi sing penting, nanging ora kabeh wong nggunakake. Trik iki nggunakake cara iki kanggo mbangun hubungan kanthi cepet:
Skema:: create('posts', function (Blueprint $tabel) {
$tabel->id();
$table->foreignIdFor(User::class)->constrained()->onDelete('cascade');
$tabel->string('judul');
$table->text('konten');
$tabel->timestamps();
});
Ing conto ing ndhuwur, kita nggawe a posts
Tabel karo tombol manca kanggo users
meja, nggunakake foreignIdFor
kanggo User
kelas. Iki minangka cara sing luwih cepet lan luwih elegan kanggo nemtokake hubungan.
Nggawe tabel dinamis ing migrasi
Ing sawetara kahanan, sampeyan mbutuhake keluwesan kanggo nggawe tabel adhedhasar kahanan tartamtu:
yen (!Skema::hasTable('dynamic_table')) {
Skema:: create('dynamic_table', function (Blueprint $tabel) {
$tabel->id();
// Definisi kolom...
});
}
Kanthi mriksa apa tabel wis ana, sampeyan bisa ngindhari duplikasi lan kesalahan nalika nggawe skema.
Kanthi nggunakake trik canggih iki ing migrasi Laravel, sampeyan bisa nambah lan nyepetake pangembangan aplikasi kanthi signifikan. Saka indeks teks lengkap lan nggawe tabel dinamis nganti pemisahan data, kemungkinan meh ora ana watesan. Muga-muga sampeyan nemokake tips iki sing migunani lan mbantu sampeyan nambah kualitas karya karo Laravel.