Rails 5如何清除或删除生产postgres数据库

Sco*_*t B 17 ruby rake ruby-on-rails rails-postgresql ruby-on-rails-5

我正在尝试删除一个生产数据库,以便我可以重新开始.当我从rails 4升级到rails 5时,它现在保护生产数据库免于意外删除.它在运行时显示以下错误消息rake db:reset.

/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)
Run Code Online (Sandbox Code Playgroud)

它说我将环境变量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"
Run Code Online (Sandbox Code Playgroud)

谁知道我做错了什么?感谢帮助!

更新:

我的服务器使用kubernetes部署.我猜我无法重置数据库,因为服务器正在运行.

小智 30

试试这个对我有用:

RAILS_ENV=production rake db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1 
Run Code Online (Sandbox Code Playgroud)

在一条线上.


yoz*_*zzz 27

将生产数据库转储到本地时也会发生这种情况.如果要在本地计算机上删除它,则需要设置bin/rails db:environment:set RAILS_ENV=development,之后rake db:drop


Kos*_*sis 10

从Heroku关于Running Rake命令的文档:

不支持db:reset任务.Heroku应用程序无权删除和创建数据库.请改用heroku pg:reset命令.

所以不要试图拥有railsrake db:reset尝试这个:

heroku pg:reset