2013-03-02 30 views

Trả lời

98

The rake db:migrate above runs any pending migrations on the development environment and updates db/schema.rb. The rake db:test:load recreates the test database from the current db/schema.rb. On subsequent attempts, it is a good idea to first run db:test:prepare, as it first checks for pending migrations and warns you appropriately.

- http://guides.rubyonrails.org/testing.html

Về cơ bản nó xử lý nhân bản cơ sở dữ liệu, do đó bạn không cần phải chạy di cư chống lại kiểm tra để cập nhật cơ sở dữ liệu thử nghiệm.

+0

Perfect, cảm ơn! – bengem

+17

'rake db: test: preparation' hiện không được chấp nhận. – Jngai1297

+3

ở trên url đã chết, đây sẽ là url mới https://github.com/rails/rails/blob/4-1-stable/activerecord/CHANGELOG.md#rails-410-april-8-2014 – riffraff

32

Cụ thể, rake db:test:prepare sẽ làm như sau:

  • Kiểm tra cho sự di cư đang chờ và,
  • và tải các giản đồ thử nghiệm

Nghĩa là, nó sẽ trông db/schema.rb tập tin của bạn để xác định xem bất kỳ di chuyển nào tồn tại trong dự án của bạn chưa được chạy. Giả sử không có di chuyển xuất sắc, sau đó nó sẽ tải rỗng cơ sở dữ liệu và tải lại nó dựa trên nội dung của tệp db/schema.rb.

2

rake db: test: preparation là giải pháp tốt cho các vấn đề về PG như this.

“PG :: UndefinedTable: ERROR: mối quan hệ không tồn tại” với một Rails đúng tên và ước", nơi tôi có thể không chỉ thực hiện rake db:migrate RAILS_ENV=production

Khi nào, ví dụ như bạn không thể tạo cơ sở dữ liệu thử nghiệm cho một lỗi thảo luận here: "PG lỗi undefinedtable người dùng mối quan hệ không tồn tại"

Tất cả arround lỗi này "PG :: undefinedTable: ERROR: mối quan hệ xxxxx không tồn tại”

+0

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. – Patrick

+0

Xin lỗi, đã chỉnh sửa với giải thích –

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