ローカル環境と本番環境のマイグレーションファイルの違いでハマった話


初めに

今回が初投稿になります!

今までQiitaで他の方の記事を参考に勉強させてもらっていたので、
調べる中で解決に時間がかかった物をメモとして残したいと思います!

まだまだ未熟者なので、記事の内容に誤りがあるかもしれませんがご了承ください🙇‍♂️

ハマった内容

AWSにてデプロイを行い、自動デプロイの設定まで完了していました。
いざ、開発環境での変更内容内容を本番環境に反映させよう!と思い、
自動デプロイ実行!!!

すると、

エラーか、、、、、

とりあえず、以下のファイルを変更し、エラー文を表示させました。

/config/environments/production.rb
config.consider_all_requests_local       = true #デフォルトはfalseになっている

このエラーは見た事がある!!
ローカルでマイグレーションファイルにdefaultを設定して直したエラーでした。

本番環境にもマイグレーションの変更を反映させなくてはと思い、
rails db:migrate RAILS_ENV=productionを実行、、、、、、、、反映されず。

ググってみたところ、
本番環境もロールバックしてからではなきゃダメ。
気を取り直して、
rails db:rollback RAILS_ENV=production
rails db:migrate RAILS_ENV=productionを実行、、、、、、、、ダメ👎

更にググる。
すると、currentディレクトリに移動して実行しなければならないとの記述発見。

次こそは!藁にもすがる思いで、アプリのディレクトリ下にあるcurrentディレクトリに移動。
いざ、rails db:rollback RAILS_ENV=production
   rails db:migrate RAILS_ENV=production

無事変更が反映されました!!!!

まとめ

本番環境にマイグレーションファイルの変更を反映させるにはcurrentディレクトリでロールバック、マイグレートしなければいけないみたいです!
かなり解決するのに時間がかかったので、忘備録として残しました。
分かりづらい説明を読んでいただきありがとうございます。間違いがあったらご指摘お願いします🤲