🧰
[Laravel][Migration] General error: 1215 ... の対策
published_at: 2019-05-28
軽くハマったので把握したことを記事にします
環境
- Laravel 5.8
- PHP 7.3
- DBはMySQL
現象
- 外部キーを定義したつもりのマイグレーションコードで
php artisan migrate
したところ
General error: 1215 Cannot add foreign key constraint というエラーとなってしまい成功しない
対策:ポイント(と思っていること)
- Laravel で
php artisan make:migrate
したときに自動生成されるマイグレーションコードの ID フィールドの型(?)bigIncrements
はunsigned
bigInteger
- この ID フィールドに外部キー制約を設定する場合、型をこれに合わせる必要がある
Schema::create('XXXXXs', function (Blueprint $table) {
$table->bigIncrements('id')->comment('XXX_ID');
//・・・・
$table->bigInteger('XXX_YYY_id')->unsigned()->comment('YYYYY_ID');
$table->foreign('XXX_YYY_id')->references('id')->on('YYYYYs');
//・・・・
$table->timestamps();
});
- エラーにハマる例
- unsigned() を入れ忘れる
- bigInteger を integer にしてしまう
Discussion