Belajar Laravel 6 : Membuat Migration di Laravel
Belajar Laravel 6 : Membuat Migration di Laravel

04 Oktober 2019 / Muhammad Amirul Ihsan

Assalamualaikum Warrohmatulloh Wabarokatuh.

Setelah melakukan konfigurasi pada projek Laravel, selanjutnya kita akan membuat tabel untuk keperluan projek sederhana yang akan kita buat, karena tujuannya adalah untuk memahami proses CRUD Laravel maka kita gunakan studi kasus yang sederhana saja yang tidak butuh banyak tabal database, kita akan membuat aplikasi untuk mencata to-do list.

Oke langsung kita buat saja tabelnya, eits, tunggu dulu, kalo kawan kawan mengira kita akan membuat tabel di phpmyadmin atau aplikasi database manager, itu salah, iya untuk buat databasenya tetap pakai phpmyadmin atau aplikasi serupa, tapi untuk pembuatan tabel di Laravel, kita akan menggunakan fitur yang bernama migration.

Oke, jadi migration itu apasih? secara gampangnya migration adalah sebuah version control sistem untuk tabel datababase, dia mencatat pembuatan tabel, perubahan tabel. penambahan atau penghapusan field, dll, keuntungannya adalah ketika bekerja secara tim, kita akan dengan mudah untuk menyamakan struktur tabel database kita karena dengan migration ini kita bisa menyamakan struktur tabel kita hanya dengan perintah dibawah ini dengan syarat file migration sudah sama.

php artisan migrate

Oke sebelum menjalankan perintah tersebut, kita perlu membuat sebuah file migration yang akan digunakan untuk membuat tabel, jalankan perintah ini di terminal kawan kawan.

php artisan make:migration create_todos_table

Perintah diatas akan menghasilkan sebuah file migration di dalam folder database/migration dengan kerangka untuk membuat tabel bernama "todos", hal ini karena kita menggunakan konvensi laravel untuk perintah membuat migration, dan ini adalah file yang dibuat.

bigIncrements('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('todos');
    }
}

Nah kerangka yang saya maksud adalah fungsi Schema::create() dan seterusnya yang ada pada method up() itulah yang disiapkan jika kita menggunakan konvensi, jika tidak kita tetap bisa membuat file migration tapi di dalam fungsi up() akan kosong, jadi kita perlu menulis Schema::create() dst untuk membuat sebuah tabel.

Berikutnya, kita akan menambahkan beberapa field baru untuk tabel todos ini dan untuk menambahkan field kita tulis didalam fungsi Schema::create() yang ada di mehtod up(), kurang lebih akan seperti ini, silakan baca komentar pada kode untuk penjelasannya.

Schema::create('todos', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->unsignedBigInteger('user_id'); // Membuat kolom dengan nama "user_id" dengan tipe data BIG INTEGER dan UNSIGNED
    $table->string('name'); // Membuat kolom dengan nama "name" dengan tipe data VARCHAR
    $table->timestamps();

    $table->foreign('user_id')->references('id')->on('users'); // Menjadikan kolom "user_id" sebagai foreign key dan mereferensi kolom id pada tabel users
});

Waalaikumsalam Warrohmatulloh Wabarokatuh.

Suka dengan artikel ini? Bantu bagikan ke yang lainnya :)