0
0

Rails におけるMigration対象のファイルには順番がある件

Posted at

はじめに

みなさん、こんにちは.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

終わりに

これって常識なんですか。

だとしたら早めにしれてよかったです。

ちなみに下記をやっていた際にぶつかりました。

0
0
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
0
0