Tata Cara Membuat Migration Baru Pada Projek Laravel

Hallo sahabat ngoding

Pada bagian ini kita akan berkenalan dengan salah satu yang keren pada laravel. yaitu Migration

Apasihh Migration Laravel??

Migration merupakan cara untuk membuat skema database secara langsung dengan mengeksekusi kode program atau bisa disebut dengan Control Version System, bukan melalui eksekusi SQL. Dengan migration, kita bisa membuat table data dengan lebih mudah dan cepat. migration akan meng-generate file - file migration sebagai control system. Maka, kita tidak perlu menulis kode SQL untuk membuat skema database, melainkan menggunakan kode program PHP.

Masih bingung? Tenang, saya harap setelah contoh berikut, Anda akan lebih memahami.

Sebelum memulai pembuatan file migration, pertama sekali coba teman-teman hapus semua file migration yang sudah ada pada folder database\\migrations.

Cara Membuat Migration

Untuk membuat file migrasi, kita akan menggunakan Artisan CLI dengan perintah “php artisan yang nanti akan dijalankan pada command line atau terminal. Namun, sebelum pembuatan migration, pertama kali kita perlu merancang database dengan kebutuhan kita dan sesuaikan koneksi databasenya yang bisa kita atur pada file .env. contohnya, seperti ini :

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=latihan_laravel
DB_USERNAME=root
DB_PASSWORD=root

lalu kawan - kawan bisa membuka terminal atau Command Line, masuk ke directory project laravel kalian melalui terminal atau command line, kemudian masukan perintah dengan perinta berikut.

$ php artisan make:migration nama_migration 

// contohnya
$ php artisan make:migration create_table_murid 

apabila terdapat pemberitahuan bahwa file migrasi sudah terbuat dan tersimpan. Setelah itu kalian bisa membuka file migrasi yang tersimpan lalu isi seperti berikut.

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

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

Seperti yang bisa liat , perbedaan fungsi up() dan down() terlihat jelas pada file migrasi. File migrasi yang dibuat dengan memiliki fungsi up() dan down() yang secara otomatis mengenali nama tabel yang akan dibuat. Di sisi lain, file migrasi tanpa awalan create_ memiliki fungsi up() dan down()yang masih kosong dan perlu diisi secara manual. Hal ini merupakan salah satu trik untuk mempercepat pembuatan file migrasi di Laravel.

Salah satu tips penting dalam Laravel adalah mengikuti aturan penamaan yang baku. Hal ini akan memudahkan kita dalam pengembangan aplikasi. Contohnya, nama tabel dalam Laravel menggunakan kata jamak, sedangkan nama modelnya menggunakan kata tunggal. Misalnya, model dengan nama User akan dipadankan dengan tabel User. Begitu pula model dengan nama Murid akan dipadankan dengan tabel Murid .

Jika kita tidak mengikuti aturan penamaan ini, kita perlu menentukan secara manual nama tabel yang berpadanan dengan model kita. Hal ini dapat menyulitkan dan membuat kode kita kurang terbaca.

Melengkapi File Migrasi

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

bigIncrements('id');
						$table->string('nama');
            $table->unsignedInteger('nomor_siswa');
            $table->timestamps();
        });
    }

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

Mari kita bedah potongan kode program diatas.

  • Schema::create('murid', … adalah kode program untuk membuat tabel. Parameter murid adalah sebagai nama tabel yang akan dibuat. Jika diterjemahkan ke kode program SQL maka perintah diatas sama dengan CREATE TABLE murid(....
  • $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('nama') 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.
  • $table->unsignedInteger('nomor_siswa') adalah kode program untuk membuat atribut nomor_siswa 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 'nomor_siswa' 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

Jadi untuk potongan kode pada fungsi up() diatas jika kita menulisnya dalam kode program SQL, maka akan seperti ini.

create table 'books' (
  'id' int unsigned not null auto_increment primary key, 
  'nama' varchar(255) not null,   'nomor_siswa' int unsigned not null,
  'created_at' timestamp null, 
  'updated_at' timestamp null
}

Eksekusi File Migrasi

Setelah menyelesaikan pembuatan file migrasi, langkah selanjutnya adalah menjalankannya. Kita akan menggunakan Artisan CLI untuk melakukan eksekusi. Pastikan konfigurasi koneksi database pada file .env telah diisi dengan benar sebelum menjalankan perintah berikut:

php artisan migrate

Apabila tidak ada pesan error yang muncul maka migration berjalan dengan benar. Maka table user dan tabel yang kalian dibuat sudah tercipta di dalam database yang terhubung. Apabila terdapat pesan error kalian coba baca dan temukan solusinya di stackoverflow atau forum lainya hehehehe.

Sampai sini untuk pembuatan tabel dengan migration

Merubah Nama Tabel Pada Migration Laravel

Selain create kita juga bisa mengubah nama table yang kita miliki melalui migration fungsi , dengan perintah.

Schema::rename('nama_table_yang_ingin_di_rename', 'nama_baru');

tapi kalian bisa juga kok buat ganti table name kalian pada fungsi up(). dan kemudian lakukan perintah php artisan migrate

Menghapus Table Dengan Migration

Untuk menghapus tabel dengan migration laravel, juga sudah ada fungsi atau metode nya.

Schema::drop('nama_table');

Migrasi Laravel menawarkan solusi modern dan efisien untuk merancang skema database. Meskipun tidak wajib, migrasi dapat meningkatkan kolaborasi, deployment, dan kejelasan kode dalam proyek Laravel kalian.

Oke Sekian penjelasan tentang migration kalian bisa kembali untuk menguliknya sendiri tentunya. Semoga bermanfaat buat kalian.

See you guysss !