Fungsi database migration di Laravel 5.3


Pada dasarnya fitur database migration di laravel ini dibuat dengan tujuan  sebagai version control terhadap database pada apikasi yang sedang di kembangkan. Tujuannga adalah apabila suatu aplikasi (berbasis laravel) dikembangkan oleh multi programmer, maka setiap perubahan skema tabel yang dilakukan oleh setiap programmer di database akan terlacak dan dapat dipantau dari fitur migrasi tersebut. Fitur database migration juga berfungsi untuk membatasi programmer agar tidak bersentuhan langsung dengan database server untuk melakukan perubahan skema tabel karena dapat dilakukan melalui perantara fitur ini.

Salah satu fitur laravel yang digunakan untuk memanajemen database adalah perintah migrate. Fitur ini bisa dijalankan lewat console di dalam root folder laravel dengan perintah:

 php artisan migrate

perintah diatas digunakan untuk memasukkan file migrasi yang berisi skema tabel yang akan dibuat di server database (MySQL misalnya).


Sebelum dapat di migrasikan, kta harus membuat file migrasi dulu dengan perintah:

 php artisan make:migration create_profiles_table

maka perintah di atas adalah membuat file migrasi create_profiles_tables yang berlokasi di /root_folder_laravel/database/migration/

setelah di edit sesuai skema tabel yang dibutuhkan, lalu memastikan bahwa koneksi database di dalam file /root_folder_laravel/.env sudah benar, kemudian untuk mengaplikasikan file create_profiles_tables  ke dalam database saya tinggal menjalankan perintah:

 php artisan migrate

jika berhasil maka tampilannya terlihat seperti berikut:


maka akan dibuat sebuah tabel dengan nama profile di dalam database dengan skema sesuai yang ditulis di dalam file create_profiles_tables tersebut. 

untuk melihat status file apa saja yang sudah di migrasikan bisa kita jalankan perintah:

 php artisan migrate:status

maka hasilnya seperti berikut:


dari gambar di atas terlihat bahwa saya sudah memigrasikan 3 buah file yang terdiri user, password dan profile. Maka di dalam database pun akan terlihat bahwa ada 3 tabel yang telah dibuat plus tabel migrasi untuk mencatat log aktivitas migrasi.

Kemudian suatu ketika saya ingin memodifikasi skema tabel profile tersebut, saya tinggal menjalankan saja penghapusan tabel profiles tersebut dengan perintah:

 php artisan migrate:rollback

Berdasarkan perintah di atas, maka hanya tabel profiles yang akan dihapus, sedangkan tabel users dan tabel password tidak dihapus karena tabel profiles adalah migrasi terakhir yang saya lakukan sebelum di rollback. Berikut hasilnya:


jika dilihat statusnya melalui perintah:

 php artisan migrate:status

maka hasilnya:


terlihat bukan bedanya?  setelah di selesai di edit, maka bisa kembali dimigrasikan ke database skema yang baru dengan perintah:

 php artisan migrate

Mudah bukan melakukan migrasi tabel database di aplikasi laravel, kita tidak perlu menyentuh shell MySQL sama sekali untuk memanajemen database yang akan digunakan di dalam aplikasi.

Untuk beberapa fitur dan opsi migrasi lainnya, tapi nanti akan saya bahas di tulisan selanjutnya. Terima kasih telah berkunjung

Comments