[TIPS] Check Table & Column Exists on Migration Laravel

Problem

Migration memungkinkan kita untuk memanipulasi database tanpa harus menyentuh secara langsung database tersebut, juga memudahkan kita dalam menelusuri perubahan yang telah dilakukan. Namun pada project dengan skala yang cukup besar, terkadang terjadi kesalahan dengan membuat migration yang memiliki fungsi yang sama dengan migration sebelumnya. Misalnya saja, fungsi untuk membuat table customers sudah pernah dibuat sebelumnya.

Solution

Solution: 1

Untuk mengatasinya, kita dapat menggunakan fungsi hasTable dan hasColumn untuk mengecek terlebih dahulu apakah table atau field / column tersebut exists atau tidak, sebelum mengeksekusi perintah selanjutnya. Maka codingan-nya kurang lebih akan terlihat seperti berikut:

public function up()
{
    if (!Schema::hasTable('customers')) {
      Schema::create('customers', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('gender');
        $table->timestamps();
      });
    }
}

Sedangkan untuk mengecek column exists atau tidak, pendekatan yang dilakukan bisa seperti ini:

public function up()
{
    if (Schema::hasTable('customers')) {
        Schema::table('customers', function (Blueprint $table) {
          if (!Schema::hasColumn('customers', 'job')) {
            $table->timestamp('job');
          } 
        });
    }
}

 


Pilih Salah Satu Untuk Login


Facebook Google

Review Users