2016-11-23 12 views
10

プロダクションデータベースを削除しようとしているので、新しく始めることができます。レール4からレール5にアップグレードした時点で、運用データベースが偶発的に削除されることを防ぎます。 rake db:resetを実行すると、次のエラーメッセージが表示されます。Rails 5プロダクションpostgresデータベースをクリアまたは削除する方法

/app# rake db:reset 
    ActiveRecord::SchemaMigration Load (1.8ms) SELECT "schema_migrations".* FROM "schema_migrations" 
    (1.6ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 [["key", :environment]] 
    ActiveRecord::SchemaMigration Load (0.2ms) SELECT "schema_migrations".* FROM "schema_migrations" 
    (0.3ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 [["key", :environment]] 
    ActiveRecord::SchemaMigration Load (0.3ms) SELECT "schema_migrations".* FROM "schema_migrations" 
    (0.2ms) SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1 [["key", :environment]] 
rake aborted! 
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 
/usr/local/bundle/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:51:in `check_protected_environments!' 
/usr/local/bundle/gems/activerecord-5.0.0.1/lib/active_record/railties/databases.rake:11:in `block (2 levels) in <top (required)>' 
/usr/local/bundle/gems/rake-11.3.0/exe/rake:27:in `<top (required)>' 
Tasks: TOP => db:reset => db:drop => db:check_protected_environments 
(See full trace by running task with --trace) 

は、それは私が動作するはずコマンドに環境変数DISABLE_DATABASE_ENVIRONMENT_CHECK = 1を追加しますが、それはしないと言っています。私はそれを実行し、それは何もしません。

<606723-x9dh4:/app# DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rake db:reset  
    ActiveRecord::SchemaMigration Load (1.6ms) SELECT "schema_migrations".* FROM "schema_migrations" 

誰かが間違っていることを知っていますか?助けを感謝します!

更新日:

私のサーバーはkubernetesを使用して配備されています。私は、サーバーが稼働しているためデータベースをリセットできないと推測しています。

+0

後にあなたの代わりに、 'RAILS_ENV =生産DISABLE_DATABASE_ENVIRONMENT_CHECK = 1本のビン/レールデシベルのような熊手のレールを使用して試すことができます: – neydroid

+0

ませんLUCをreset' k、ちょうど同じことをします。 –

答えて

0

あなたはショットを以下に与えることができますか?

RAILS_ENV=production rake db:drop 
RAILS_ENV=production rake db:create 

これは古い方法ですが、これを使用してデータベースを初期のレベルにリセットしました。一行に

RAILS_ENV=production rake db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1 

10

は、それが私の仕事にこれを試してみてください。

0

それが機能していませんが、あなたはこの

bundle exec rake RAILS_ENV=production db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1 

のようなコマンドを実行する必要があり、あなたがテーブルをドロップすると、あなたはCREATEDBする権利を持っていない場合は、エラーになりますback.So、それを作成する必要があります。ここであなたの名前をPostgres permission denied to create database on rake db:create:all

と入力すると、psqlと入力すると、\qと入力します。

私はこれが答えではないと言いましたが、これはあなたが検索している間にこれがあなたの時間を節約することを願っています。 Beacuse私は今すぐそこにいる。 GL & HF

0

まあ、これは古い記事が、将来の参照であっても、多分あなたはRunning Rake commandsにHerokuののドキュメントから

rake db:migrate VERSION=0 

そして

rake db:migrate 
2

を行うことができます。

db:resetタスクはサポートされていません。 Herokuアプリケーションには、データベースの削除と作成の権限がありません。代わりにheroku pg:resetコマンドを使用してください。

ので、代わりのrailsまたはrake db:resetを持ってしようとし、これを試してください:現地に本番データベースを複製していたし、ローカルマシン上にドロップしたい人のための

heroku pg:reset

6

、あなたが必要となりますbin/rails db:environment:set RAILS_ENV=developmentを設定し、そしてrake db:drop

関連する問題