Rancang Database-mu dengan Migration Pada Laravel

Part 6 — Migration

Eko Simanjuntak
Dec 9, 2019 · 6 min read

Skema database

Membuat File Migrasi

Untuk membuat file migrasi, kita akan menggunakan Artisan CLI seperti yang pernah saya jelaskan di part sebelumnya.

$ php artisan make:migration create_books_table
  • artisan adalah perintah untuk menjalankan artisan itu sendiri
  • make: adalah perintah untuk membuat file baru, diikuti dengan parameter migration untuk menunjukkan bahwa kita akan membuat file migration. Untuk membuat file lainnya, bisa mengganti parameternya sesuai kebutuhan kita dan contohnya sudah ada pada part sebelumnya.
  • create_books_table adalah parameter yang menginformasikan kepada Artisan bahwa file migration yang akan kita buat adalah untuk menciptakan tabel books. Perlu diperhatikan, awalan create_ diperlukan untuk menginformasikan Artisan bahwa kita akan membuat tabel, dengan demikian Artisan akan men-generate file migration yang lebih lengkap dibanding tanpa menggunakan awalan create_ .
php artisan make:migration create_books_table
php artisan make:migration add_books_table

Melengkapi File Migrasi

Tahapan berikutnya adalah melengkapi file migration kita. Pada file migration create_users_table , lengkapi fungsi up() seperti contoh dibawah ini.

  • $table->bigIncrements('id') adalah kode program untuk membuat atribut id dengan ketentuan bertipe data big int, unsigned, bersifat not null, bersifat auto_increment, dan dijadikan sebagai primary key. Unsigned artinya nilainya tidak akan bisa negatif, not null artinya tidak boleh dikosongkan, auto_increment artinya akan bertambah secara otomatis ketika menambah data baru. Jika diterjemahkan ke kode program SQL maka perintah diatas sama dengan 'id' int unsigned not null auto_increment primary key .
  • $table->string('title') adalah kode program untuk membuat atribut name dengan ketentuan bertipe data varchar(255) dan bersifat not null. Varchar(255) artinya adalah tipe berupa rangkaian karakter dengan panjang maksimal 255 karakter, sama dengan 255 bit, karena setiap karakter membutuhkan alokasi memori sebesar 1 bit. Angka 255 adalah angka default dan bisa diganti dengan kebutuhan panjang data kita dengan cara mengubah kode program menjadi $table->string('title', 100) , untuk panjang maksimal 100 karakter. Jika diterjemahkan ke kode program SQL maka perintah diatas sama dengan 'name' varchar(255) not null. Hal yang sama berlaku juga untuk kode program $table->string(‘author’) dan $table->string(‘publication’)
  • $table->unsignedInteger('year') adalah kode program untuk membuat atribut year dengan ketentuan int unsigned not null. Kita buat bersifat unsigned untuk membatasi kesalahan memasukkan data berupa bilangan negatif. Jika diterjemahkan ke kode program SQL maka perintah diatas sama dengan 'year' int unsigned not null
  • $table->timestamps() adalah potongan kode untuk membuat atribut created_at dan updated_at dengan ketentuan timestamp null. Timestamp adalah tipe data untuk menyimpan tanggal dan waktu sekaligus. Null artinya tidak wajib disini. Jika diterjemahkan ke kode program SQL maka perintah diatas sama dengan 'created_at' timestamp null, 'updated_at’ timestamp null

Mengeksekusi File Migrasi

Setelah file migration kita lengkapi, maka saatnya untuk mengeksekusi file migration kita. Kita akan menggunakan Artisan CLI untuk mengeksekusi file migration kita. Sebelumnya, pastikan teman-teman sudah mengisi konfigurasi koneksi ke database pada file .env . Lalu jalankan perintah berikut

php artisan migrate

Haruskah dengan Migration?

Bagi teman-teman yang terbiasa dengan merancang skema database menggunakan database GUI tools mungkin agak janggal menggunakan migration. Saya juga dulu seperti itu kok. Tetapi kita tidak diwajibkan untuk menggunakan migration untuk pengembangan aplikasi dengan framework Laravel. Teman-teman bisa juga menggunakan cara biasa yang teman-teman pakai untuk merancang database.

  • Adanya catatan perubahan pada skema database kita. Jika tidak menggunakan migration, kita akan langsung mengubah rancangan database melalui GUI tools atau CLI tools dan kita tidak bisa mengingat sejarah perubahannya. Jika menggunakan migration, setiap file migration menjadi catatan perubahan yang terjadi pada skema database kita.
  • Kode program pada file migration lebih mudah dibaca dibanding kode program SQL. Cuma saya yang merasa seperti itu? :D

Taken from me.me

Easyread

Easy read, easy understanding. A good writing is a writing that can be understood in easy ways

Eko Simanjuntak

Written by

SRE at Gojek

Easyread

Easyread

Easy read, easy understanding. A good writing is a writing that can be understood in easy ways

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade