Mengenal Migration dan Cara Menggunakan Migration di Laravel

Share:

Mengenal Migration dan Cara Menggunakan Migration di Laravel. Assalamualaikum, halo semuanya kembali lagi di sahretech. Kali ini saya akan berbagi tutorial dan sekaligus memperkenalkan kepada kalian semua sebuah fitur keren dari laravel yang dapat mengelola struktur database dan kontrol versinya tanpa harus membuka database interfacenya secara langsung.



Apa itu Migration?

Diartikan dari situs resmi laravel, migration adalah sebuah fitur di laravel yang dapat bekerja layaknya version control untuk database kalian. Dengan menggunakan migration, tim kalian dapat dengan mudah memodifikasi dan membagikan skema database yang ada di dalam sebuah projek. Jika kalian pernah menggunakan github atau gitlab, fitur ini mirip dengan kedua aplikasi tersebut, yaitu untuk mendokumentasikan setiap perubahan yang terjadi di dalam database. Alasan lain kenapa kita perlu menggunakan migration adalah untuk memudahkan tim dalam melakukan perubahan.

Meski tidak secara spesifik ada di laravel, tapi sejatinya fitur ini telah lama diperkenalkan. Migration adalah cara lain untuk menjalankan DDL(database definiton language) tanpa perlu mengetikkan syntax sql dari terminal dan editor khusus lainnya. Mungkin cukup segitu penjelasan tentang apa itu migration, bagi kalian yang masih penasaran bisa browsing-browsing lagi artikel tentang migration, banyak sekali artikel yang membahas migration laravel dalam berbagai bahasa dan platform.


1. Mengatur Koneksi Database

Hal pertama yang harus kalian lakukan sebelum menjalankan perintah-perintah migration adalah mengatur database kalian masing-masing di dalam file .env. Sesuaikan database, username, dan password kalian masing-masing sesuai dengan database yang telah kalian buat.

konfigurasi file .env -sahretech
Konfigurasi File .env


2. Membuat File Migration

Kedua, kalian perlu membuat sebuah file yang menampung skema tabel kalian. Setelah sebuah perintah di bawah ini kalian jalankan maka kalian harus mengisi skema tabel yang akan siap dimigrasi ke database sebenarnya. Buka command line, lalu masuk ke folder kalian masing-masing, lalu ketikan perintah berikut ini   php artisan make:migration create_barang_table  

Membuat file migrasi dengan nama tabel barang


Setelah dijalankan maka sebuah migration file akan dibuat di dalam folder database/migrations. oh iya, jangan lupa untuk mengganti kata diantara create_ dan _table dengan nama tabel yang telah kalian siapkan masing-masing. 



3. Mengisi Skema atau Struktur Tabel 

Setelah berkas atau file berhasil dibuat, kalian perlu mendifinisikan struktur tabel kalian. Sama seperti membuat tabel lewat command line atau phpmyadmin, kalian perlu membuat nama field dan tipe fieldnya, disini kalian bisa menambahkan panjang tipe fieldnya secara opsional. Laravel akan mebuat field dengan titpe-tipe tertentu seperti string atau integer dengan panjang default yang telah ditentukan oleh laravel. Lihat gambar berikut ini untuk melihat bagaimana struktur tabel pada laravel dibuat.

Membuat isi tabel dalam berkas migration


Semua field ditulis di dalam fungsi up(), kalian juga dapat melihat nama tabel kalian setelah kata Schema::create, jadi create_ dan _table tidak ikut dijadikan nama tabel ya, lalu baris $table->timestamp() jangan sampe dihapus, karena kalo dihapus akan terjadi error saat melakukan migrasi tabel, dan untuk fungsi down() akan digunakan untuk menghapus tabel jika tabel sudah ada.


4. Menjalankan Migration Untuk Dimasukkan ke Dalam Database yang Sebenarnya

Setelah semua step di atas dijalankan, hal terakhir yang perlu kalian kerjakan adalah memasukkan tabel yang telah kalian buat tadi ke dalam database. Caranya buka command line kalian, lalu jalankan perintah di bawah ini.

Melakukan migrasi tabel ke dalam database


Ok setelah migrasi berhasil dijalankan, coba kalian masuk ke dalam phpmyadmin kalian masing-masing. Hasilnya akan tampak seperti gambar di bawah ini. Sebuah tabel baru berhasil ditambahkan, keren bukan?. Kita tidak perlu masuk ke command line untuk membuat sebuah database atau bahkan tidak perlu masuk ke phpmyadmin.

Migrasi berhasil dilakukan 

Tabel produk berhasil dibuat dan masuk ke dalam database laravel, lalu laravel juga akan scara default menambahkan tabel failed_jobs, migrations, password_resets, dan users karena saat fresh laravel diinstall file-file ini langsung ada tanpa perlu kita tambah terlebih dahulu.



Kesalahan Saat Melakukan Fungsi Migrate

Dalam keadaan tertentu, bisa terjadi error pada migrasi yang kita lakukan. Saat terjadi error kalian akan diberikan beberapa petunjuk kenapa bisa terjadi error. Berikut ini beberapa hal yang perlu kalian perhatikan saat hendak menjalankan perintah migrate

  • Pastikan service database kalian hidup dan pastikan database yang kalian tuju telah dibuat sebelumnya. Jika tidak dijalankan maka akan membuat laravel tidak dapat terkoneksi dengan database.
  • Pastikan cara penulisan skema atau struktur tabel kalian benar sesuai dengan aturan dari laravel. Untuk hal ini kalian bisa melihat dokumentasinya di situs resmi laravel
  • Jangan menghapus $table->timestamp(), jika dihapus akan memunculkan error. Codingan ini berguna untuk membuat 2 field, yaitu field created_at dan updated_at.
  • Jangan menghapus fungsi down() karena fungsi ini berguna untuk menghpus tabel yang sudah ada agar tidak terjadi bentrok.
  • Tidak dianjurkan untuk mengetik secara manual file migration.
Mungkin ada beberapa hal lain yang menjadi penyebab kenapa bisa terjadi error saat migrasi, untuk itu stack over flow menyiapkan pembahasannya untuk kalian. Hal-hal di atas biasa terjadi bagi pengguna migrasi baru, tapi jangan khawatir saat terjadi error di atas migrasi tidak akan dijalankan dan database kalian akan tetap aman.

Fungsi-fungsi Lain di Dalam Migration

Ok, mungkin kalian akan bertanya-tanya bagaimana jika tabel yang kita masukkan ke dalam database salah, Jawabannya:

Menghapus Tabel

  • Menghapus migrasi atau tabel paling terakhir:  php artisan migrate:rollback  
  • Menghapus beberapa migrasi atau tabel terakhir:  php artisan migrate:rollback --step=5  
  • Menghapus semua migrasi atau tabel:  php artisan migrate:reset  
  • Menghapus semua tabel dan mengembalikannya kembali:  php artisan migrate:refresh  

Ok, begitulah isi dari tutorial singkat ini. Ada beberapa fungsi lain yang bisa kalian gunakan di dalam dokumentasi resminya, tutorial di atas hanya menjelaskan dasar-dasar dan fungsi yang akan sering kita gunakan dalam projek laravel yang dibangun. Diharapkan tutorial ini dapat membantu kalian untuk memahami apa itu migration dan cara menggunakannya.

Sekian tutorial kali ini, kurang lebihnya saya mohon maaf. Bila ada yang ingin bertanya silahkan tinggalkan pertanyaan kalian di kolom komentar di bawah ini. Sampai jumpa di tutorial seru lainnya. Happy Coding. :)


No comments