Jumat, 30 Juni 2017

Mengatasi Masalah Foreign Key Constraint Ketika Migrasi Database di Laravel 5.4

Beberapa masalah ketika melakukan migrasi database dengan perintah "php artisan migrate:refresh" atau "php artisan migrate:refresh --seed" ketika ingin memasukan beberapa sample baru yaitu sebagai berikut:
  1. Tidak dapat membuat table dengan error "errno: 150 "Foreign key constraint is incorrectly formed".
  2. Tidak bisa menghapus atau meng-update database dengan error "SQLSTATE[23000]: Integrity constraint violation: 1217 Cannot delete or update a parent row: a foreign key constraint fails"
Solusi untuk mengatasi hal ini yaitu sebagai berikut:
  1. Pastikan tipe data primary key dan foreign key sama.
  2. Pastikan "urutan nama file" create table dalam direktori migrations di-sorting ascending sesuai dengan kondisi table yg memiliki primary dan foreign key, karena proses migrasi pada laravel mengeksekusi berdasarkan "urutan nama file". Dahulukan file yg memiliki foreign key dengan menamai file paling awal, karena pada prinsipnya table yg didahulukan dihapus atau di-update adalah file yg memiliki foreign key.

Tidak ada komentar: