| Prime Time

Laravel #19 : Migration Laravel

Migration Laravel

Pada tutorial laravel ini, akan dibahas tentang pengertian migration, cara membuat file migration dan cara menggunakannya. juga dibahas tentang kegunaan dan apa saja keuntungan jika kita menggunakan fitur migration pada laravel ini, terlebih jika kita mengerjakan aplikasi menggunakan laravel dengan tim.

Pengertian Migration Laravel

Migration adalah sebuah fitur yang ada pada laravel, migration merupakan Control Version System untuk database. dengan menggunakan migration laravel, memungkinkan kita untuk mengelola database dengan lebih mudah.

Dengan menggunakan migration, kita bisa membuat table data dengan lebih mudah dan cepat. migration akan membuat atau meng-generate file-file migration sebagai control system. file-file ini lah yang bisa dikirim oleh programmer antara satu sama lain saat sedang membuat aplikasi.

Contoh, misalnya programmer A menangani proses pembuatan untuk data mahasiswa, Programmer B menangani proses pembuatan data dosen. dan programmer C menangani proses pembuatan data KRS dan KHS mahasiswa.

Nah, jika si programmer A melakukan perubahan pada table data mahasiswa nya, si programmer A ini tinggal mengirimkan file migration mahasiswa ke programmer yang lain agar bisa di migrate. jadi tidak perlu lagi export import file sql seperti yang selama ini kita lakukan.

Seperti yang sudah dijelaskan sebelumnya, migration menjadi control version system untuk bagian database, misalnya programmer A melakukan perubahan pada table mahasiswa, dan jika programmer A ingin mengembalikan lagi ke data sebelumnya, programmer A tinggal me-rollback.

Cara Membuat & Menggunakan Migration

Untuk membuat migration caranya kita bisa menggunakan perintah php artisan seperti sebelum-sebelumnya. dimana sebelumnya juga sudah dijelaskan tentang pengertian php artisan. dimana php artisan merupakan perintah  atau kata kunci untuk menjalankan perintah-perintah laravel melalui command line atau terminal.

oh ya, jangan lupa melakukan konfigurasi database terlebih dulu pada file .env.

 

Silahkan buat database dan sesuaikan pengaturan koneksi databasenya pada file .env ini. di sini saya sudah memiliki database dengan nama belajar_laravel.

Buka file .env, kemudian sesuaikan dengan koneksi database teman-teman.

Baca : Konfigurasi dasar pada laravel (.env)

Teman-teman bisa langsung membuka terminal atau CMD, masuk ke direktori project laravel teman-teman melalui terminal atau cmd, kemudian untuk membuat migration kita bisa mengetikkan perintah berikut.

php artisan make:migration nama_migration

saya contohkan, misalnya kita akan membuat sebuah tabel mahasiswa, maka saya mengetikkan perintah

php artisan make:migration create_mahasiswa_table

Perhatikan gambar berikut.

migration laravel

migration laravel

maka akan muncul pemberitahuan bahwa migration telah dibuat dengan nama 2019_01_06_082107_create_mahasiswa_table.

lengkap dengan tanggal migration dibuat pada awal nama file nya. yaitu tanggal 6, bulan 1 dan tahun 2019.

Migration akan dibuat pada folder database/migrations.

membuat migration laravel

membuat migration laravel

Di sana sudah ada migration bawaan default dari laravel, yaitu untuk membuat table user. yang ini akan kita bahas pada tutorial laravel selanjutnya, yaitu pada tutorial membuat login laravel. jadi sekarang kita abaikan dulu.

Sekarang coba buka file migration mahasiswa yang sudah kita buat di atas.

cara membuat tabel dengan migration

cara membuat tabel dengan migration

Dalam file migration ini, laravel sudah membuatkan 2 buah method atau function secara otomatis. yaitu method up() untuk membuat table. dan method down() untuk menghapus table atau rollback.

Pada method up() kita bisa menentukan kolum apa saja yang ingin kita buat pada table mahasiswa.

Secara default sudah ada kolum id dengan auto increment.

dan sudah ada timestamps untuk membuat column created_at dan updated_at secara otomatis.

Sedikit tambahan, fitur keren lagi dari laravel adalah laravel secara otomatis membuatkan kita kolum created_at yang akan menyimpan tanggal berapa record data tersebut dibuat, dan updated_at yang akan menyimpan data tanggal kapan record data tersebut di update. dan itu dilakukan secara otomatis oleh laravel.

jadi teman-teman jangan bingung. cukup ikuti saja tutorial ini, seiring perjalanan teman-teman akan paham sendiri saat teman-teman sudah mulai membuat table dengan migration.

Kita kembali ke topik,

Untuk membuat column lainnya pada table dengan migration, ada banyak sekali perintah yang bisa kita gunakan. berikut ini saya rangkum beberapa perintah yang akan sering sekali teman-teman gunakan ke depannya.

$table->increments(โ€˜idโ€™); Untuk membuat kolum table yang menggunakan auto increment dengan type int, seperti yang biasa digunakan untuk membuat kolum id
$table->bigIncrements(โ€˜idโ€™); Membuat kolum dengan type BigInt dan auto increment
$table->bigInteger(โ€˜votesโ€™); Membuat kolum dengan type BigInt
$table->boolean(โ€˜confirmedโ€™); Membuat Kolum dengan type boolean (true dan false)
$table->char(โ€˜nameโ€™, 100); Membuat kolum dengan type varchar dengan jumlah 100
$table->date(โ€˜created_atโ€™); Membuat kolum dengan type date
$table->dateTime(โ€˜created_atโ€™); Membuat kolum dengan type datetime
$table->decimal(โ€˜amountโ€™, 8, 2); Membuat kolum dengan type decimal
$table->integer(โ€˜votesโ€™); Membuat kolum dengan type integer / int
$table->string(โ€˜nameโ€™, 100); Membuat kolum dengan type varchar dan jumlah 100
$table->longText(โ€˜descriptionโ€™); Membuat kolum dengan type text yang panjang
$table->text(โ€˜descriptionโ€™); Membuat kolum dengan type text
$table->year(โ€˜birth_yearโ€™); Membuat kolum dengan type year

Pokoknya ada banyak sekali perintah yang bisa kita gunakan untuk membuat kolum-kolum pada table dengan menggunakan migration. teman-teman bisa lihat selengkapnya di sini. karena yang saya list di sini hanya sebagian yang sering digunakan saja.

Karena di sini saya membutuhkan kolum nama, nim dan alamat, maka function up() nya saya buat menjadi seperti berikut.

Silahkan teman-teman sesuaikan dengan kolum-kolum yang ingin teman-teman buat sesuai keinginan.

Kemudian kita bisa langsung mengetikkan perintah berikut pada terminal atau cmd teman-teman. agar file migration kita di jalankan. oh ya sebaiknya file migration yang lain (selain file migration yang kita buat barusan) di hapus saja dulu. di sini saya menghapus file migration user dan reset password. jadi cuma tinggal file migration mahasiswa saja.

Oke ketik perintah berikut.

php artisan migrate

php artisan migrate

php artisan migrate

Sekarang coba teman-teman lihat database nya, pasti sudah jadi table mahasiswanya.

migrate laravel

migrate laravel

Perhatikan, ada 2 table yang di generate oleh migration. yaitu table mahasiswa sesuai dengan yang kita buat tadi. dan satunya lagi table migrations. table migrations secara default dibuat oleh laravel saat kita menggunakan migration. karena table migrations ini berguna untuk menyimpan semua data atau log migration yang kita lakukan.

table migration laravel

table migration laravel

dan perhatikan juga table mahasiswa, seperti yang sudah saya jelaskan sebelumnya. dengan fungsi atau perintah $table->timestamps(); akan otomatis membuatkan kita kolum created_at dan updated_at yang akan menyimpan kapan record data tersebut dibuat atau diupdate.

membuat table dengan migration laravel

membuat table dengan migration laravel

Sangat keren kan teman-teman fitur migration laravel ini.

Sampai disini teman-teman telah bisa membuat table dengan migration.

Merubah Nama table Dengan Migration Laravel

Untuk rename table dengan menggunakan Migration, sudah ada fungsi yang disediakan. teman-teman bisa menggunakan perintah

Tapi saya lebih sering mengubah nama table dengan langsung mengubah nama table pada fungsi up(). dan kemudian ketik perintah php artisan migrate. ๐Ÿ™‚

Menghapus Table Dengan Migration

Untuk menghapus table dengan migration laravel, juga sudah ada fungsi atau method nya.

atau

Cara Rollback Migration Laravel

Seperti yang sudah saya jelaskan di awal tutorial ini, migration seperti menjadi control version system, semua perubahan database yang kita lakukan dengan migration semuanya di data, sehingga kita bisa melakukan rollback dengan mudah saat kita ingin mengubah format table ke versi sebelumnya sebelum kita ubah.

Kita bisa melakukan rollback dengan mengetik perintah php artisan berikut pada terminal atau cmd.

Atau jika kita ingin merollback beberapa langkah perubahan sebelumnya, kita bisa menambahkan perintah

Tergantung teman-teman ingin mengembalikan datanya ke perubahan yang keberapa.

Oke, Sekian dulu tutorial migration laravel. sampai jumpa pada tutorial laravel selanjutnya.