Rake db: test: chuẩn bị thực sự làm gì?


124

Tôi đang theo dõi các video hướng dẫn đường ray và tôi không thể hiểu được db:test:preparelệnh thực sự làm gì. Ai đó có thể cung cấp một lời giải thích?

Câu trả lời:


119

Rake db: di chuyển ở trên chạy bất kỳ di chuyển đang chờ xử lý nào trên môi trường phát triển và cập nhật db / lược đồ.rb. Rake db: test: load tạo lại cơ sở dữ liệu thử nghiệm từ db / lược.rb hiện tại. Trong các lần thử tiếp theo, bạn nên chạy db: test: chuẩn bị, vì trước tiên, nó sẽ kiểm tra các lần di chuyển đang chờ xử lý và cảnh báo bạn một cách thích hợp.

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

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


19
rake db:test:preparebây giờ không được dùng nữa
Jngai1297

3
url trên đã chết, đây sẽ là một địa chỉ mới github.com/rails/rails/blob/4-1-urdy/activerecord/ Kẻ
riffraff

12
và nó đã trở lại github.com/rails/rails/commit/ trên
fenec

4
@ Jngai1297 Không còn nữa!
Phillipp

1
@Phillipp hướng dẫn thêm một lần nữa.rubyonrails.org/v5.0/ trộm
yozzz

42

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

  • Kiểm tra di chuyển đang chờ xử lý và,
  • tải lược đồ kiểm tra

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


2

rake db: test: chuẩn bị là một giải pháp tốt cho các vấn đề PG như thế này .

Tên PG PG :: Không xác định: LRI: không tồn tại mối quan hệ với tên và quy ước Rails chính xác "nơi tôi không thể thực hiện rake db:migrate RAILS_ENV=production

Ví dụ, khi bạn không thể tạo cơ sở dữ liệu kiểm tra cho một lỗi được thảo luận ở đây : "PG không tồn tại người dùng quan hệ lỗi không xác định được"

Tất cả đều mắc lỗi này "PG :: UndiniteTable: ERROR: mối quan hệ xxxxx không tồn tại

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.