2013-07-03 19 views
19

Trong thanh ray 3, nhiệm vụ db:migrate xác định việc di chuyển nào sẽ chạy?Di chuyển đường ray được xử lý như thế nào khi hợp nhất các chi nhánh tính năng?

Hãy xem xét các trường hợp sử dụng sau đây:

  • nhà phát triển A tạo một di dân tại timestamp t1 tại chi nhánh tính năng riêng của mình
  • nhà phát triển B tạo ra một sự chuyển đổi ở timestamp t2 trong chi nhánh tính năng riêng của mình
  • nhà phát triển B hợp nhất chi nhánh của mình, db:migrate được chạy trên máy chủ
  • nhà phát triển A hợp nhất chi nhánh của mình

Vì t1 trước đó, việc di chuyển của nhà phát triển A có chạy hay không?

Tôi nhận thấy bảng schema_migrations và tôi tự hỏi liệu có bất kỳ di chuyển nào chưa chạy sẽ được chạy hay không.

Trả lời

21

Linh cảm của bạn là chính xác - mọi di chuyển không có trong schema_migrations sẽ được chạy và chúng sẽ được chạy theo thứ tự dấu thời gian tăng dần.

Trong trường hợp này, lần sau db:migrate được chạy sau khi hợp nhất, di chuyển t1 sẽ được chạy.

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