Cara Mengatasi 1050 Table already exists ketika Migrasi Database

Ketika migrasi database menggunakan “php artisan migrate” saya mendapati kejadian error yang menyatakan bahwa table “nama_tabel_xxx” sudah ada, pesan error “1050 Table already exists”. Memang kejadiannya begitu, tabel tersebut sudah ada, sehingga script tidak mau melanjutkan. Bunyi error detailnya seperti di bawah ini, saya perbesar textnya supaya lebih jelas ya.

SQLSTATE[42S01]: Base table or view already exists: 1050 Table ‘users’ already exists (SQL: create tabel users

“users” di situ adalah nama dari tabel yang saya punya. Prakteknya di tempat anda mungkin nama lainnya.

Jadi bagaimana cara mengatasinya?

  1. Cek file migrasi database anda,
    • contoh punya saya menggunakan Laravel, file migrasi ada di “database” -> “migrations” -> “2014_10_12_000000_create_users_table.php”
  2. Cek file tersebut, anda akan menemukan script ini
    • setelah “public function up() {“
    • sebelum “Schema::create(‘tabel_xxx’, function (Blueprint $table) {“
  3. Tambahkan ini:
    • if(Schema::hasTable(‘tabel_xxx’)) return;

Jadi kuncinya adalah menambahkan kode ini pada script migrasi anda:

if(Schema::hasTable('tabel_xxx')) return;

Tentunya anda harus edit semua file yang muncul error tersebut, setelah itu dicoba kembali “php artisan migrate”.

SQLSTATE 42S01 Base table or view already exists