Edited at

herokuのDB本番環境リセット(PostgreSQL)

下記のページなどを参考に、herokuの本番環境DB(PostgreSQL)のリセットを行ったが、

なかなか思う様にできなかったので、備忘録。

環境としては、

・IDE:cloud 9

・サーバー:heroku

・本番DB:PostgreSQL


1. heroku pg:reset DATABASE_URLを実行した後、heroku run rails db:migrateを実行。

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "〇〇〇" does not exist

のエラーが発生してしまう。


2. heroku run rails db:schema:load RAILS_ENV=productionを実行。

 rails aborted!

ActiveRecord::NoEnvironmentInSchemaError:

Environment data not found in the schema. To resolve this issue, run:

bin/rails db:environment:set RAILS_ENV=production

との警告が表示される。


3. 警告を基に、heroku run rails db:environment:set RAILS_ENV=production db:schema:loadを実行。

2の警告を基に、RAILS_ENV=productionを変えて、db:environment:set RAILS_ENV=productionを追記。

ActiveRecord::ProtectedEnvironmentError: You are attempting to run a destructive action against your 'production' database.

If you are sure you want to continue, run the same command with the environment variable:
DISABLE_DATABASE_ENVIRONMENT_CHECK=1

との警告が表示される。


4. 警告を基に、heroku run rails db:environment:set DISABLE_DATABASE_ENVIRONMENT_CHECK=1 RAILS_ENV=production db:schema:loadを実行。

3の警告を基に、DISABLE_DATABASE_ENVIRONMENT_CHECK=1を追記。

DBのリセットに成功!!

その後、heroku run rails db:migrateを実行し、無事本番環境のDBを再構築することができた。


まとめ