Tôi đang cố xóa cơ sở dữ liệu sản xuất để tôi có thể bắt đầu mới. Khi tôi nâng cấp lên đường ray 5 từ đường ray 4, nó hiện đang bảo vệ cơ sở dữ liệu sản xuất khỏi tình cờ xóa. Nó hiển thị thông báo lỗi sau khi tôi chạy rake db:reset
.Rails 5 cách xóa hoặc xóa cơ sở dữ liệu postgres sản xuất
/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)
Điều đó nói rằng việc thêm biến môi trường DISABLE_DATABASE_ENVIRONMENT_CHECK = 1 vào lệnh sẽ hoạt động nhưng nó không hoạt động. Tôi chạy nó và nó không làm gì cả.
<606723-x9dh4:/app# DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rake db:reset
ActiveRecord::SchemaMigration Load (1.6ms) SELECT "schema_migrations".* FROM "schema_migrations"
Bất kỳ ai biết tôi đang làm gì sai? Đánh giá cao sự trợ giúp!
CẬP NHẬT:
Máy chủ của tôi được triển khai bằng kubernetes. Tôi đoán rằng tôi không thể đặt lại cơ sở dữ liệu vì máy chủ đang chạy.
bạn có thể thử sử dụng đường ray thay vì rake như 'RAILS_ENV = sản xuất DISABLE_DATABASE_ENVIRONMENT_CHECK = 1 bin/rails db: reset' – neydroid
Không có luc k, chỉ cần làm điều tương tự. –