5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【メモ】Laravelマイグレーションで外部キー制約をつけるときに気をつけること

Posted at

Laravelで外部キー制約をつけたテーブルのマイグレーションファイルをマイグレートする時に外部キー制約がつけられないエラーが発生。

SQLSTATE[HY000]:General error: 1215 Cannot add foreign key constraint

確認するポイント
・innoDBになているか
・数値の場合外部キーにunsigned()がついているか

$table->integer('purpose_id')->unsigned();
$table->foreign('purpose_id')
      ->references('id')
      ->on('purpose_masters')
      ->onDelete('cascade');

・数値でない場合、Eloquentモデルクラスに$incrementing = false;が設定されているか
・外部キー制約をつける際に既に参照先のテーブル、カラムが作られているか
(マイグレーションを行う場合、マイグレーションファイルが作られた順番にマイグレーションが行われる。そのため、参照先のテーブルより先に外部キー制約の記述をしたマイグレーションファイルを作成してしまうと上記のようなエラーが発生してしまう)←ここでずっと引っかかってた(泣)

以上。

5
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?