プログラミングガール

Developing a better me

Rails|Cannot add foreign key constraint エラー対処

困ったシチュエーション

後でマスターテーブルを追加しようとした際、以下のエラーに遭遇。

Mysql2::Error: Cannot add foreign key constraint: ALTER TABLE `application_forms` ADD CONSTRAINT `fk_rails_386b13f566`

え、どういうこと?

原因

マスターテーブルを後から作成したため、以下の順でマイグレートが当たっていた。
しかし、1のentriesテーブルで2のマスタテーブルを参照しているため、叱られていた。

  1. 20160617063944_create_entries.rb
  2. 20160620063943_create_mst_categories.rb

解決方法

マイグレートファイルの名前を修正し、正しい順番でマイグレートが当たるように修正する。

  1. 20160620063943_create_mst_categories.rb
  2. 20160621063944_create_entries.rb