2013-01-22 29 views
6

Tôi vừa tham gia một dự án phát triển một công cụ đường ray, cũng có một ứng dụng giả để thử nghiệm.Làm thế nào để quản lý di chuyển cho một động cơ ray + ứng dụng giả

foo/ 
foo/spec/dummy/ 

Có di cư giống hệt nhau trong

foo/db/migrate/ 
foo/spec/dummy/db/migrate/ 

Nếu tôi rake db:migrate từ các ứng dụng giả, tất cả là tốt. Nếu tôi làm như vậy từ động cơ (current directory = foo), tôi gặp lỗi về nhiều lần di chuyển có cùng tên.

Q1) Rakefiles có bị bần không? (nên db:migrate recurse xuống các ứng dụng giả?)

Q2) Nếu di chuyển chỉ có trong một thư mục? Nếu vậy thì cái nào?

Chúng tôi đang sử dụng Rails 3.2.9, ruby ​​1.9.3p194.

Trả lời

7

Câu hỏi 1
Rakefile phải có mục nhập cho ứng dụng spec/dummy. Ví dụ,

Bundler::GemHelper.install_tasks 
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__) 
load 'rails/tasks/engine.rake' 

Dưới đây là chi tiết hơn ví dụ rakefile, https://github.com/twinge/questionnaire_engine/blob/engine2/Rakefile

Câu hỏi 2
IMO, sự di cư chỉ nên tồn tại trên foo/db thư mục/di chuyển, và không foo/spec/dummy/db/di chuyển. Trong thực tế, tôi không phiên bản kiểm soát db/migrate của dummy hoặc db/schema.

Tại sao? Tôi sử dụng các ứng dụng giả mạo đảm bảo đầy đủ về cài đặt động cơ của tôi hoạt động 100%. Do đó, nếu phiên bản của tôi kiểm soát trạng thái db foo/spec/dummy, tôi sẽ thử nghiệm như thể đã có cài đặt trước đó.

Ví dụ động cơ
https://github.com/twinge/questionnaire_engine/tree/engine2

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