はじめに
みなさん、こんにちは.torihaziです。
昨日作ったRails7 x React 18 のDocker環境の下で
現在開発を進めているのですが、
久しぶりのRailsで、はじめの始めでつまづいたので
書き記しておこうと思います
どういうことか
例えばテーブルを4つ(A,B,C,D)作るとします。
そのためにターミナルで下記コマンドを打ち込むかと思います。
rails g migration createAs
rails g migration createBs
rails g migration createCs
rails g migration createDs
そうするとファイルがそれぞれ
20241111001111_create_as.rb
20241111002222_create_bs.rb
20241111003333_create_cs.rb
20241111004444_create_ds.rb
と作られます。
この時
- BはAのidを外部キーとしてもち
- CはAとBとDのidを外部キーとしてもつ
なんてしたときに各ファイルいじって最後にrails db:migrate
やると思います。
が、私は失敗しました。
理由としては Cをmigrateするときにまだ未定義のDの情報を扱ったため、でした。
rails db:migrate
するときはA、B、C、Dと進み、Cに差し掛かった所で
ターミナルからUndefined Table
と返されました。
解決
CとDのmigrationファイルについている
先頭の数字を入れ替えて、再度migrateを実行しました。
そしたら無事、うまくいきました。
参考にしました!
https://qiita.com/takuo_maeda/items/17923ba3ec39cb2c5e20
終わりに
これって常識なんですか。
だとしたら早めにしれてよかったです。
ちなみに下記をやっていた際にぶつかりました。