はじめに
Heroku上にあるRailsアプリのPostgresのDBリセット方法です。
最初にheroku run rails db:reset -a アプリ名
を行うも途中でエラーが発生。↓
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
DB破壊系のコマンドを実行する際にはDISABLE_DATABASE_ENVIRONMENT_CHECK=1
を付け足せとメッセージが表示。
再度上記環境変数を付け足してコマンド実行も
rails aborted!
PG::ConnectionBad: FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.
今度は権限がないとエラー。
#解決方法
heroku pg:reset -a アプリ名
コマンド実行。
▸ WARNING: Destructive action
▸ データベース名 will lose all of its data
▸
▸ To proceed, type アプリ名 or re-run this command with --confirm
ここで先に進むためには再度アプリ名を入力するか、同じコマンドに--confirm
を付け足して再度実行しろとメッセージ、指示通りにコマンドを打てばリセット完了。
リセット後アプリを開く際にはheroku run rails db:migrate
コマンドも忘れずに。
#最後に
DB周りのエラーは、初学者がアプリをローカル環境から本番環境に移行する際に非常によく遭遇しますね。
この記事が少しでも役に立てば幸いです。