laravelで、マイグレーションエラーしたら下記のようなエラー
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
今回エラーになったのは、
カラム’user_id’に、親テーブルの’id’をキーとする外部制約を付与しようとしたケース
原因:親子でカラムの型が一致していなかったから
色々調べてみるとよくあるエラーの原因として、
外部制約を与えようとするカラムのデータ型が、親となるカラムのデータ型と異なるから、
と言うのが多くあるらしい。
今回は、use_idのカラムが、親テーブルのカラムid下記点で違っていた。
■カラム’use_id’の属性にunsigendがついていない
親カラム’id’には属性に「UNSIGNED」がついているのに、’use_id’につけ忘れていた。

解決策:親とデータ型を揃える
なのでmigrationファイルで以下のように下記加えた
public function up()
{
Schema::create('articles', function (Blueprint $table) {
//==========省略==========
$table->bigInteger('user_id')->unsigned(); #unsigned()まで一緒にしないとだめ!
//==========省略==========
$table->timestamps();
});
}
そしたら無事マイグレーション できた。
他にもよくありがちなのが、integerとBigIntegerの違いだったりするようだ。
後はid()と、autoincrement(‘id’)の違いも確かめてないけどダメだったりするのかな?
コメントを残す