Skip to content

Migration di Laravel

Definisi migration di laravel – Migrations versi mudahnya adalah version control database yang membantu developer untuk membuat database schema definition.

Jika kita sebelumnya pernah meminta db admin untuk menambahkan kolom baru di local database schema setelah ada perubahan dari kode program yang berkaitan dengan database, maka database migration adalah solusi untuk masalah tersebut.

Laravel Schema facade membantu membuat dan memanipulasi table di database di seluruh database sistem yang disupport oleh Laravel. Biasanya, migrations akan menggunakan facade untuk membuat dan memodifikasi table dan column yang ada di database

Cara penggunaan migration di laravel

Dari folder laravel project, cukup ketik php artisan make:migration {nama_file_migration}. Contoh :

migration-di-laravel-image-php-artisan-make-migration-hadidsama
php artisan make:migration

fun fact: jika nama file migration kita diawali dengan create_ lalu diakhiri dengan _table, maka yang ditengah-tengah nama file migration adalah nama table yang akan dibuat secara otomatis di Schema file migration

Untuk aplikasi yang cukup kompleks, file migrations sebaiknya dibuat setelah design database sudah ada. Kenapa? Karena jika belum ada design database, khawatirnya database yang dibuat akan menjadi sulit untuk ditrace jika ada problem. Belum lagi jika ada penambahan atau pengurangan kolom. Dan tentunya aplikasi kompleks akan saling menghubungkan (baca:join) antara satu table dengan table lainnya, yang mana akan semakin sulit untuk di maintain tanpa ada design database.

Setelah file migrations dibuat, saatnya memasukkan nama-nama kolom beserta tipe kolomnya.

migration-di-laravel-image-editing-migration-file-hadidsama
editing file migration sesuai kebutuhan

Untuk tipe kolom disesuaikan dengan data yang akan disimpan. Jika bertentuk text yang kurang dari 255 karakter, bisa menggunakan tipe string. Jika berbentuk text dengan jumlah karakter yang cukup banyak (misal diatas 1000 karakter) maka tipe longText bisa digunakan.

File migrations sudah dibuat, saatnya eksekusi file tersebut agar dapat diimplementasikan ke database dengan cara ketik php artisan migrate

migration-di-laravel-image-php-artisan-migrate-hadidsama
eksekusi file migration dengan php artisan migrate

Untuk mengecek status migration, bisa ketik php artisan migrate:status

migration-di-laravel-image-php-artisan-migrate-status-hadidsama
List file yang berhasil dieksekusi, terlihat create_flights_table ada di batch ke 3

Roll back migrations

Ada kalanya kita perlu memperbaiki file migrations yang baru saja dibuat, maka migrate:rollback akan sangat membantu. migrate:rollback akan mengembalikan file-file migration di sesi terakhir migration. Misal 5 menit yang lalu kita membuat 5 file migration dan sudah dimigrasi semua, maka saat menjalankan migrate:rollback 5 file migration tersebut yang akan di rollback.

migration-di-laravel-image-php-artisan-migrate-rollback-hadidsama
php artisan migrate:rollback

Refresh Database

Dengan menggunakan php artisan migrate:refresh, maka semua file migration yang sudah dieksekusi akan di rollback lalu di eksekusi ulang. migrate:refresh sangat berguna untuk membuat ulang seluruh database dari file-file migrations yang sebelumnya sudah dibuat.

Demikian terkait migrations di laravel, jika ada update terbaru maka akan ditambahkan.

Ingin install composer di ubuntu? bisa cek artikelnya disini -> Cara Install Composer di Ubuntu Desktop