ruby-on-rails - Rails 5 如何清除或删除生产 postgres 数据库

标签 ruby-on-rails ruby rake ruby-on-rails-5 rails-postgresql

我正在尝试删除生产数据库,以便重新开始。当我从 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)

它说我在命令中添加环境变量 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 部署的。我猜我无法重置数据库,因为服务器正在运行。

最佳答案

试试这个对我有用:

RAILS_ENV=production rake db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1 

在一行中。

关于ruby-on-rails - Rails 5 如何清除或删除生产 postgres 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775611/

相关文章:

ruby-on-rails - POW 错误 - rails

ruby-on-rails - 尝试使用 collection_select 显示电子邮件时获得 [电子邮件保护]

mysql - RAIL_ENV=生产 rake db :schema:load aborted with rails 3. 1.0 和 ubuntu 10.04

ruby - rake 中止! Bundler 找不到 gem "bundler"的兼容版本

ruby-on-rails - 在 Rails 中使用 Mongoid 的 MongoDB - 地理空间索引

ruby-on-rails - RoR 模型似乎不像 Ruby 类?

ruby - 更新时如何删除 has_many 关系?

ruby-on-rails - Rails 模型——非持久类成员或属性?

ruby-on-rails - Rspec SimpleCov NoMethodError

makefile - 使用 Ceedling/Rake 构建共享库和可执行文件