前提・実現したいこと
開発環境と本番環境でDBのテーブル構成がが異なってしまっていて、本番環境で rails db:migrate RAILS_ENV=production してもマイグレーションファイルの状態が反映されない状況です。
アプリの動作自体は開発環境と同じように動きます。
MySQLを使いターミナルでテーブル構成を確認した時の表示は下記のようになっています。
開発環境でのテーブル構成 +--------------------------------------+ | Tables_in_decideyourplan_development | +--------------------------------------+ | ar_internal_metadata | | places | | schema_migrations | | searches | | subplaces | | users | +--------------------------------------+ 本番環境でのテーブル構成 +-------------------------------------+ | Tables_in_decideYourPlan_production | +-------------------------------------+ | ar_internal_metadata | | places | | posts #この部分が違う | | schema_migrations | | searches | | subplaces | | users | +-------------------------------------+
開発環境でpostモデルが必要なくなったので、rails destroy model postで削除しました。
その際、NO FILEというファイルとしてマイグレーションファイルが残ってしまったので、touch db/migrate/20200116052507_hoge.rbを実行、statusをdownにする、当該マイグレーションファイルを削除の順で解消しました。
削除後この手順はあまりよろしくないことに気づきました。
この手順でpostモデルを削除した影響で、本番環境にpostsデーブルが残ってしまっているのでしょうか?
また、本番環境で直接MySQLを使いテーブルを削除しても問題ないでしょうか?
本番環境でデータベースを崩してしまうと直せる自信がないので先に質問させていただきました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/26 07:13