2011-08-30 42 views
12

Tôi hiện đang điều tra các tùy chọn có thể có của khung công tác/di chuyển. Tôi thích ý tưởng về việc di chuyển ruby ​​dựa trên các khung công tác trên.migrator.net vs fluentmigrator vs migsharp

Vì vậy, tôi hỏi về trải nghiệm, ý kiến ​​của bạn và có thể so sánh giữa chúng. Bạn đang sử dụng chúng trong sản xuất?


cảm ơn bạn đã trả lời. Mục tiêu của câu hỏi này là để có được một cảm giác về những công cụ được sử dụng nhiều nhất trong cộng đồng nhà phát triển nhưng có vẻ như việc di chuyển không phải là một chủ đề nóng ở đây.

Dù sao, tôi đã quyết định đi với MigSharp vì codebase có vẻ khá sạch và dễ xử lý và đã hỗ trợ cho MS SQL CE. Á hậu thứ hai sẽ là FluentMigrator, nơi tôi không thể tạo ra một ví dụ làm việc cho phiên bản nhỏ gọn.

Chúc mừng

+0

Cổ điển gorila vs cá mập http://blog.stackoverflow.com/2011/08/gorilla-vs-shark/ – regisbsb

Trả lời

9

Tôi sử dụng FluentMigrator trong sản xuất và là người đóng góp lâu dài cho FM. Tôi nghĩ câu hỏi của bạn là nói chung; hãy cụ thể hơn. Ngoài ra, FM có một nhóm google mà là khá tích cực nếu bạn muốn thông tin FM.

FM có nguồn gốc từ migrator.net, như tôi nhớ lại. Nó sử dụng một cú pháp thông thạo và hỗ trợ nhiều cơ sở dữ liệu. Chúng tôi đã lấy cảm hứng từ việc di chuyển đường ray, nhưng nó chắc chắn không phải là một cảng. Worth kiểm tra ra.

Một điều tôi đã học được không phải là đưa di chuyển của bạn vào cùng một cụm từ như mã ứng dụng của bạn. Phân tách chúng thành một hội đồng di trú và sử dụng nó để di chuyển cơ sở dữ liệu của bạn.

Ngoài ra, bạn nên luôn làm việc trên nhiều môi trường để tránh các vấn đề với việc di chuyển chạy thẳng vào sản xuất. Tôi luôn có ít nhất một môi trường phát triển và sản xuất, và phần lớn thời gian cũng có một môi trường thử nghiệm.

3

Tôi sử dụng mig #.

Nó hoạt động tốt, nhưng bạn sẽ cần phải có một số nguyên tắc để sử dụng - vì việc di chuyển có thể trở nên phức tạp.

Chúng tôi sử dụng số thứ tự vào cuối di chuyển của chúng tôi thay vì dấu ngày tháng. Điều này là do chúng ta không biết khi nào tem thời gian được thiết lập (khi họ bắt đầu thay đổi mã nguồn; ngay trước khi cam kết; một số thời gian giữa các nhà phát triển khác nhau có thể sử dụng các cách tiếp cận khác nhau.

Các tên như Migration_0000034.cs cung cấp cho bạn nhiều không gian.

+0

Bạn có nói rằng việc di chuyển trở nên phức tạp với Mig # hoặc nói chung? – Dejan

+0

BTW, hướng dẫn sử dụng để di chuyển # có thể được tìm thấy ở đây: https://github.com/dradovic/MigSharp/wiki – Dejan

0

Tại thời điểm này, tôi sẽ gắn bó với migrator.net. Tôi thích lời hứa của FluentMigrator, nhưng có vẻ như không có bất kỳ sự phát triển tích cực nào tốt hơn so với migrator.net (xem các vấn đề và kéo các yêu cầu đã không hoạt động trên trang web github của họ).

Cũng không có cách nào dễ dàng để thực hiện ExecuteScalar(). Tôi sẽ thêm nó, nhưng tôi không muốn tạo cái nĩa của riêng mình, và tôi thấy không có lý do gì mà một yêu cầu kéo sẽ thực sự rơi vào chủ nhân. (Execute.WithConnection là một hành động để nó sẽ kích hoạt theo yêu cầu hơn là khi tôi cần nó để bắn)

Vì vậy, đối với tôi, tôi đang quay trở lại migrator.net.

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