Có lệnh cào để xóa sạch dữ liệu trong các bảng cơ sở dữ liệu không?Đặt lại cơ sở dữ liệu (xóa tất cả), sau đó gieo một cơ sở dữ liệu
Làm cách nào để tạo tập lệnh db: hạt giống để điền trước dữ liệu vào bảng của tôi?
Có lệnh cào để xóa sạch dữ liệu trong các bảng cơ sở dữ liệu không?Đặt lại cơ sở dữ liệu (xóa tất cả), sau đó gieo một cơ sở dữ liệu
Làm cách nào để tạo tập lệnh db: hạt giống để điền trước dữ liệu vào bảng của tôi?
Tôi sử dụng rake db:reset
để giảm và sau đó tạo lại cơ sở dữ liệu và bao gồm tệp seed.rb của bạn. http://guides.rubyonrails.org/migrations.html#resetting-the-database
Bạn có thể xóa tất cả mọi thứ và tạo cơ sở dữ liệu + hạt với cả hai:
rake db:reset
: tải từ schema.rbrake db:drop db:create db:migrate db:seed
: tải từ di cưHãy chắc chắn rằng bạn không có các kết nối tới db (máy chủ rails, máy khách sql ..) hoặc db sẽ không bị mất.
schema.rb là một bản chụp của tình trạng hiện tại của cơ sở dữ liệu của bạn được tạo ra bởi:
rake db:schema:dump
Cảm ơn bạn đã nhắc mọi người tắt bất kỳ máy chủ nào để đảm bảo DB bị xóa đúng cách. – aardvarkk
Nếu bạn không cảm thấy như thả và tái tạo lại toàn bộ công việc chỉ để tải lại dữ liệu của bạn, bạn có thể sử dụng MyModel.destroy_all
(hoặc delete_all
) trong tệp seed.db để xóa bảng trước khi các câu lệnh MyModel.create!(...)
tải dữ liệu. Sau đó, bạn có thể làm lại thao tác db:seed
lặp đi lặp lại. (Rõ ràng, điều này chỉ ảnh hưởng đến các bảng bạn đã tải dữ liệu vào, không phải phần còn lại của chúng.)
Có một "hack bẩn" tại https://stackoverflow.com/a/14957893/4553442 để thêm hoạt động "khử mầm" tương tự như di chuyển lên và xuống. ..
thông minh, tái tạo mọi thứ từ đầu mỗi khi mất nhiều thời gian cho tôi – m02ph3u5
Tính đến Rails 5, công cụ rake
commandline đã được bí danh như rails
vì vậy bây giờ
rails db:reset
thay vì rake db:reset
sẽ chỉ làm việc cũng
Lưu ý phụ này: nếu trong Sản xuất, bạn có thể phải khởi động lại máy chủ đường ray để thay đổi xuất hiện/trang cần cập nhật. – etusm