Cara Migrate Database Laravel
Mari membahas proses pembuatan migrasi di Laravel dan melihat beberapa metode dan teknik yang tidak biasa yang dapat Anda manfaatkan dalam aplikasi Anda sendiri. Beberapa dari pintasan ini secara dramatis mempercepat waktu yang anda perlukan untuk menyiapkan struktur database dan siap digunakan.
Migrasi Laravel seperti alat manajemen versi database.
cara membuat migrasi dan memahami strukturnya
Untuk menghasilkan migrasi, Anda perlu menjalankan perintah
php artisan make:migration create_posts_table
ini akan menghasilkan file di folder database\migrasi.
File tersebut terdiri dari kelas baru yang extend class migrasi laravel.
Kelas baru terdiri dari 2 fungsi utama up() & down(). Fungsi up() menampung semua informasi tentang migrasi file.
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body');
$table->integer('order')->nullable();
$table->boolean('is_published')->default(true);
$table->timestamps();
});
}
sedangkan fungsi down() menyimpan informasi tentang membalikkan tindakan migrasi.
public function down()
{
Schema::dropIfExists('posts');
}
Jalankan & Kembalikan Migrasi Untuk menjalankan migrasi kita perlu menggunakan perintah
php artisan migrate
Untuk mengembalikan migrasi terbaru, kami memiliki perintah
php artisan migrate:rollback
ketika kita harus melakukan rollback hingga beberapa langkah tertentu kita dapat melewati langkah-langkah dalam perintah rollback seperti
php artisan migrasi: kembalikan --step=3
ini akan mengembalikan migrasi hingga 3 langkah mulai dari yang terbaru.
cara migrate database laravel dengan cara lain dengan cara membuat model sekaligus migrasi dalam satu perintah
php artisan make:model Post --migration
maka dalam hal ini akan tergenerate 2 file yaitu model Post dan file migrasi untuk post
Menambah/Memperbarui Kolom pada Tabel
Untuk melakukan ubahan pada kolom perlu membuat file migrasi yang sama dengan yang telah kita buat saat membuat migrasi.
satu-satunya perubahan akan ada di nama migrasi, selalu coba tulis jelas deskriptif nama migrasi yang membantu laravel untuk memahami nama tabel dalam migrasi. Misalnya Memperbarui nama kolom kita harus menjalankan perintah seperti
php artisan make:migration update_name_column_in_contacts_table
Pengubahan Kolom
Pengubah Kolom tidak lain adalah fungsi yang telah ditentukan sebelumnya yang tersedia di laravel Migration dengan menggunakan bahwa Anda dapat membuat kolom apa pun dapat dibatalkan.
Tambah/Ganti Nama/Hapus Indeks Basis Data Migrasi Laravel mendukung beberapa jenis INDEX untuk misal
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
Schema::table('users', function (Blueprint $table) {
$table->index('email');
});
Untuk mengganti nama indeks, Anda dapat menggunakan renameIndex() untuk misal
$table->renameIndex('email', 'mobile_no');
Untuk menjatuhkan indeks, Anda dapat menggunakan dropIndex() untuk misal
$table->dropIndex('email');
Kendala foreign key Laravel juga menyediakan dukungan untuk membuat batasan foreign key, yang digunakan untuk memaksa integritas referensial di tingkat basis data
$table->foreignId('user_id')
->constrained('users')
->cascadeOnUpdate()
->cascadeOnDelete();
atau ada kemungkinan mengalami Error