2016-11-23 24 views
10

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.

+0

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

+0

Không có luc k, chỉ cần làm điều tương tự. –

Trả lời

0

Bạn có thể chụp dưới đây không?

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

Đây là phương pháp cũ, nhưng đó là cách tôi đã sử dụng để đặt lại cơ sở dữ liệu về mức nguyên sơ.

10

Hãy thử điều này nó làm việc cho tôi:

RAILS_ENV=production rake db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1 

trong một dòng đơn.

0

Nó không phải là làm việc nhưng bạn nên chạy lệnh như thế này

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

và khi bạn thả bảng, bạn phải tạo ra nó back.So bạn sẽ nhận được báo lỗi nếu bạn không có quyền createdb. Tại đây, số asnwer của bạn Postgres permission denied to create database on rake db:create:all

khi bạn nhập psql bạn thoát khỏi đó bằng cách nhập \q.

Giống như tôi đã nói đây không phải là câu trả lời nhưng tôi hy vọng điều này sẽ tiết kiệm thời gian của bạn trong khi bạn đang tìm kiếm. Beacuse tôi đang có ngay bây giờ. GL & HF

0

Vâng, mặc dù đây là một bài cũ, nhưng tham khảo sau này, có lẽ bạn có thể làm

rake db:migrate VERSION=0 

Và sau đó

rake db:migrate 
2

Từ tài liệu Heroku về Running Rake commands:

Tác vụ đặt lại db: không được hỗ trợ. Các ứng dụng Heroku không được phép thả và tạo cơ sở dữ liệu. Sử dụng lệnh heroku pg: reset để thay thế.

Vì vậy, thay vì cố gắng để có rails hoặc rake db:reset, hãy thử này:

heroku pg:reset

6

Đối với những người đã tái tạo cơ sở dữ liệu sản xuất đến địa phương, và muốn thả nó trên máy tính địa phương, bạn sẽ cần để đặt bin/rails db:environment:set RAILS_ENV=development và sau rake db:drop

Các vấn đề liên quan