migrasi laravel

Ing artikel iki kita bakal nliti salah sawijining aspek dhasar pangembangan web: Migrasi Laravel

Ing artikel iki aku bakal ngarahake kanggo nerangake makna, keuntungan lan implementasine praktis saka Migrasi Laravel

Kita bakal ndeleng kepiye Laravel Migration bisa nambah proyek pangembangan web, nyederhanakake manajemen database, njaga integritas data, lan nggunakake jinis data, pengontrol, lan sambungan database.

Perkiraan Wektu Wacan: 8 menit

Apa sampeyan kudu re-faktor proyek penting nggunakake teknologi inovatif, lan mulane uga redo database? Ing telpon padha marang sampeyan bab a framework lan saka migrasi laravel, dirancang kanggo proyèk penting, intrigued, sampeyan mutusaké kanggo nyoba kanggo mangerteni yen bisa nengen kanggo sampeyan. Siji-sijine kekurangane, yaiku sampeyan ora ngerti cara kerjane migrasi laravel lan karo kerangka php laravel.

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 keuntungan saka migrasi laravel, kanggo nggawe lan ngatur dhewe database. 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 nyaman, ngukir sawetara menit wektu kanggo awake dhewe lan maca kabeh lan ndeleng conto migrasi laravel: Aku manawa, ing mburi guide, sampeyan bakal sampurna bisa nggawe lan ngatur a database con fasih. Sawise ujar manawa, sing bisa daklakoni yaiku muga-muga sampeyan seneng maca lan kerja sing apik!

Apa sing Laravel Migration

Le migrasi di Laravel penting kanggo ngatur owah-owahan ing database ing aplikasi Laravel. Padha kurban pendekatan diatur kanggo nyinkronake ing database karo basis kode aplikasi sampeyan ing macem-macem lingkungan. Mbayangno yen aplikasi sampeyan berkembang liwat wektu, mbutuhake owah-owahan ing struktur database utawa nambah tabel lan jinis data anyar. Migrasi nyegah proses iki dadi manual, cobaan sing rawan kesalahan. Saben file migrasi diwenehi tandha wektu, njamin riwayat owah-owahan sing jelas saka urutan sing digawe. Iki nyederhanakake tugas kayata muter maneh menyang negara sadurunge utawa nglamar owah-owahan kanthi bertahap.

Napa nggunakake Laravel Migration

Migrasi Laravel nawakake sawetara kaluwihan sing nggawe alat indispensable kanggo pangembang web nggarap Framework PHP Laravel. Kita dhaptar sawetara fitur Laravel Migration:

  • Manajemen skema database: Migrasi Laravel mbantu ngatur lan skema kontrol versi database lan jinis data, ngidini owah-owahan kabentuk lan diatur kanggo struktur saka database liwat wektu;
  • Kontrol versi: The migrasi dilacak ing sistem kontrol versi kaya Git, mesthekake yen owah-owahan menyang database bisa gampang direvisi, dibatalake utawa ditrapake ing kabeh lingkungan pangembangan;
  • Portabilitas saka database: Laravel menehi pendekatan independen database, ngidini sampeyan nulis owah-owahan skema mung sapisan lan gampang ngalih ing antarane sistem sing beda database, kayata MySQL, PostgreSQL, SQLite utawa SQL Server;
  • Rollback lan mulihake: The migrasi nawakake alat kanggo mulihake utawa ngreset owahan kanggo database, ngidini pangembang pulih saka kesalahan, ngowahi skema, lan njaga kahanan stabil database;
  • dokumentasi: The migrasi padha dadi dokumentasi kanggo évolusi saka rencana database: saben file migrasi ngemot timestamp lan gambaran saka owah-owahan sing digawe, nambah transparansi lan maintainability basis kode;
  • kontrol Sajarah lan rollback: Laravel trek nindakake migrasi lan nawakake watesan rollback, mesthekake yen migrasi idempoten lan kontrol ing aplikasi lan rollback;
  • Seeding kanggo populasi data: Laravel uga menehi kemampuan kanggo winih data liwat seeder, asring digunakake bebarengan karo pengontrol. Fitur iki ngijini sampeyan kanggo populate ing database karo data dhisikan, nggawe nglengkapi terkenal kanggo migrasi kanggo njaga integritas data;
  • Integrasi lancar karo tes: Integrasi iki ngidini pangembang nggawe database test karo skema padha database aplikasi utama, nggawe kui luwih gampang kanggo nulis lan mbukak tes related kanggo database;
  • Konsistensi basis kode: Encapsulating owah-owahan saka database ing file migrasi, sampeyan mesthekake yen saben pangembang sing nggarap proyek kasebut bisa ngetrapake owah-owahan kasebut kanthi konsisten ing lingkungan, saka persiyapan pangembangan lokal nganti server produksi.
  • Manajemen ketergantungan: Fungsi manajemen dependensi nyederhanakake proses ngatur owah-owahan kompleks database kang adhedhasar anane struktur tartamtu.
  • collaboration: Wiwit rencana saka database ditetepake ing kode, macem-macem pangembang bisa digunakake ing wektu sing padha, lan owah-owahan ing skema bisa gampang dienggo bareng lan digabung liwat sistem kontrol versi kaya Git. Iki nyederhanakake proses pangembangan lan nyuda konflik.

Cara ngleksanakake migrasi Laravel

Nggawe siji migrasi in Laravel penting kanggo ngatur owah-owahan ing skema database. Ayo mlaku liwat proses nggawe migrasi sing prasaja kanggo luwih ngerti strukture, kalebu jinis data lan pengontrol.

Nggawe migrasi

In Laravel, sampeyan bisa nggawe a migrasi nggunakake printah Artisan make:migration. Bukak terminal lan pindhah menyang direktori proyek Laravel. Banjur, jalanake perintah ing ngisor iki:

php artisan make:migration create_example_table

nggawe migrasi
Proyek Migrasi Laravel

Printah iki bakal nggawe file migrasi anyar ing direktori database/migrations kanthi jeneng kaya iki 2024_07_18_000000_create_example_table.php. iku wektu ing jeneng file njamin sing migrasi dieksekusi miturut urutan sing digawe.

migrasi laravel
nggawe tabel migrasi laravel

Nemtokake skema

Nalika mbukak file migrasi, sampeyan bakal nemokake rong cara: munggah lan mudhun. Cara munggah nemtokake owah-owahan sing pengin digawe ing skema sampeyan database, kalebu nemtokake jinis data lan pengontrol, dene cara mudhun nemtokake cara mbalikke owah-owahan kasebut.

<?php

gunakake Illuminate\Database\Migration\Migration;
gunakake Illuminate\Database\Schema\Blueprint;
gunakake Illuminate\Support\Facades\Schema;

bali kelas anyar ngluwihi Migration
{
/ **
* Jalanake migrasi.
*/
fungsi umum munggah (): void
{
Skema:: create('omah', function (Blueprint $tabel) {
$tabel->id();
$table->foreignId('worksite_id')->constrained('worksites')->cascadeOnDelete();
$table->foreignId('state_id')->constrained('states')->cascadeOnDelete();
$tabel->string('kode');
$table->foreignId('typeofhouse_id')->constrained('typeof_houses')->cascadeOnDelete();
$table->unsignedSmallInteger('nomer_kamar');
$tabel->string('lantai');
$table->float('mqc');
$tabel->dobel('rega');
$tabel->dobel('rega_minimal');
$tabel->dobel('simpenan_minimal');
$tabel->string('lampiran')->nullable();
$table->text('followup')->nullable();
$table->text('note')->nullable();
$tabel->timestamps();
});
}

/ **
* Mbalikake migrasi.
*/
fungsi umum mudhun (): void
{
Skema::dropIfExists('omah');
}
};

Nambahake kolom ing tabel

Yen sampeyan pengin nambah atribut anyar menyang entitas data, yaiku kolom saka tabel sing wis ana, sampeyan kudu nglakokake printah ing ngisor iki:

php artisan make:migration add_new_column_to_example_table --table=example

laravel migrasi laravel

Mbukak file sing mentas digawe
(contone, 2024_08_18_145408_add_new_column_to_example_table.php) lan ganti cara munggah lan mudhun kaya ing ngisor iki:

<?php

gunakake Illuminate\Database\Migration\Migration;
gunakake Illuminate\Database\Schema\Blueprint;
gunakake Illuminate\Support\Facades\Schema;

bali kelas anyar ngluwihi Migration
{
/ **
* Jalanake migrasi.
*/
fungsi umum munggah (): void
{
Skema::tabel('conto', fungsi (Blueprint $tabel) {
$table->string('new_column')->nullable(); // Nambahake kolom anyar
});
}

/ **
* Mbalikake migrasi.
*/
fungsi umum mudhun (): void
{
Skema::tabel('conto', fungsi (Blueprint $tabel) {
$tabel->dropColumn('new_column'); // Nyelehake kolom sing ditambahake
});
}
};

Mlaku migrasi

Kanggo aplikasi migrasi lan nggawe tabel sampel ing database, jalanake perintah Artisan ing ngisor iki:

php artisan migrate

Printah iki mbukak kabeh migrasi sing ditundha. Laravel nglacak migrasi endi sing wis ditindakake ing tabel migrasi sampeyan database.

tabel migrasi
tabel migrasi laravel

Migrasi lan indeks

Ngganti indeks saka database, kalebu nambah, ngganti jeneng, utawa mbusak, bisa ditindakake liwat migrasi Laravel. Ayo mlaku liwat proses kanggo saben tumindak kasebut.

Tambahan kanggo indeks:

gunakake Illuminate\Database\Schema\Blueprint; 
gunakake Illuminate\Support\Facades\Schema;
Skema::table( 'users' , function (Blueprint $tabel) {
$table-> index ('email');
}

Ganti jeneng indeks:

Kanggo ngganti jeneng indeks, sampeyan bisa nggunakake

ganti jenengIndex(): 
$table -> renameIndex ( 'email' , 'mobile_number' );
}

Ngilangi indeks:

Kanggo mbusak indeks, sampeyan bisa nggunakake

dropIndex(): 
$tabel -> dropIndex ('email');
}

Nggunakake watesan kunci asing:

Laravel bisa mbantu nggawe alangan kunci manca, sing mesthekake yen data ing database tetep konsisten lan tindakake hubungan antarane tabel beda.

{ $tabel -> foreignId ('id') 
bound ('pangguna')
cascadeOnUpdate()
cascadeOnDelete ();}

Praktik lan strategi paling apik kanggo migrasi Laravel

Tansah migrasi cilik lan spesifik:

Iku luwih apik kanggo nggawe sawetara migrasi cilik saka siji gedhe. Pendekatan iki luwih gampang kanggo nglacak lan nemokake masalah yen ana.

Dokumentasi owah-owahan sampeyan:

Ing metode migrasi munggah, tambahake komentar kanggo njlèntrèhaké apa sing ditindakake migrasi. Dokumentasi iki penting banget nalika sampeyan utawa tim sampeyan kudu ngerti owah-owahan sing kepungkur.

Tes migrasi:

Tansah nyoba migrasi ing lingkungan pementasan sadurunge nglamar menyang a database saka produksi. Iki mbantu nemokake masalah sadurunge nyebabake sistem urip sampeyan.

Rencana mundur:

Priksa manawa sampeyan duwe rencana rollback kanggo saben migrasi. Kesalahan kedadeyan lan sampeyan kudu bisa mbatalake owah-owahan yen ana masalah.

Njupuk kauntungan saka kontrol versi

Gunakake sistem kontrol versi kaya Git kanggo nglacak migrasi sampeyan. Iki nyedhiyakake jejak audit lan mbisakake kolaborasi karo anggota tim.

Autore