デプロイ時のmigrateの順番を変更する方法

初めてのオリジナルアプリ開発でつまづいたので忘れないための備忘録として書いておきます。
プログラミング初めて1か月の初心者なので内容に間違いがあるかもしれません。あったら是非教えてください!ではいってみよー!

questionsコントローラーに初めて取り入れるプログラムがあり、先にquestionsテーブルだけ作成してその機能を実装→その他の機能を実装という順序で進めていました。
quesitonsコントローラーが無事動くことを確認し、deviseをmigrateするタイミングで一度rollbackしてquestionsもdown→usersカラムとanswersカラム追加してmigrate
そこでエラーが出ます。foreign_keyのuserありませんよーと。
調べていくと、上から順番にmigrateされるため、questionsテーブルを作成する際にはusersテーブルが存在しないため、エラーになるとのことでした。そこでマイグレーションファイルのファイル名を変更しました。

このファイル名でmigrateすると上から順番に実行されて無事にmigrateすることができました!
本番環境はRenderを使っていますが、そこでもエラーが・・・。questionsコントローラーだけ完成した際に何個かデータベースにデータが残っていてそれが原因のようです。
削除するためにファイルに小細工を。

最後の行、これでデータを一度削除すると無事にデプロイできました。
このまま残しておくと、デプロイされる度にデータベースがリセットされるのでちゃんと直しておきましょう。

明日からも開発がんばりますー!

タイトルとURLをコピーしました