2016-05-23 21 views
66

Tôi cần sử dụng công cụ/khung công tác di chuyển cơ sở dữ liệu cho các ứng dụng dựa trên Spring Boot/Node.js của mình. Sau khi khám phá các tính năng của Liquibase và Flyway, tôi hơi bối rối khi sử dụng. Trong khi hỗ trợ rollback, cơ sở dữ liệu trung tính changeset, vv thu hút tôi đối với Liquibase, mặt khác sự đơn giản (SQL dựa), thủ tục tốt hơn, và hỗ trợ PL/SQL là kéo tôi về phía Flyway.Liquibase vs Flyway mà một trong những sử dụng?

Cần thêm điểm dữ liệu cụ thể tại đây trước khi quyết định cuối cùng về điều này.

+3

Bạn đã tạo câu hỏi chỉ có bạn mới có thể trả lời dựa trên môi trường và kế hoạch dự án của bạn. Liquibase - hỗ trợ rollback, thay đổi cơ sở dữ liệu trung lập vv trong khi Flyway - đơn giản (dựa trên SQL), thủ tục tốt hơn và hỗ trợ PL/SQL. –

+0

Roger bạn có điều gì khác trong đầu mình không? Giống như bất kỳ tính năng quan trọng được cung cấp bởi một trong số họ nhưng không phải bởi khác? – Tanmoy

+0

Chúng là các công cụ khác nhau và do đó bạn cần phải lập bản đồ các tính năng của chúng với những gì bạn muốn làm trong quá trình phát triển của mình. Câu trả lời của cralfaro mở rộng danh sách các sự khác biệt, nhưng bạn chưa liệt kê những gì bạn muốn đạt được với một giải pháp để nó khó cho bất cứ ai cung cấp câu trả lời trực tiếp. –

Trả lời

97

Tôi đã sử dụng cả hai công cụ và vì vậy, theo quan điểm, đây là những khác biệt chính.

bay theo trục

  1. Dễ dàng để cấu hình - bạn chỉ cần một vị trí thư mục và giữ một tên cú pháp V1__file.sql, ...
  2. SQL-based, nhưng bạn cần phải viết đúng các cú pháp của công cụ cơ sở dữ liệu cụ thể của bạn (Mysql, DB2, ...)
  3. Là dựa trên Java để bổ sung cấu hình tùy chỉnh để làm sạch, thực hiện, vv dễ dàng hơn.

Liquibase

  1. Cần một tập tin chính "changelog" để theo dõi tất cả thực hiện changesets.
  2. Là dựa trên XML, vì vậy bạn cần sử dụng các thẻ liquibase cụ thể để tạo mã số SQL. Điều này là hoàn hảo để di chuyển mã của bạn sang một công cụ DB khác nhau : bạn sẽ không cần phải thay đổi bất kỳ thứ gì và chỉ trình điều khiển DB sẽ thông báo cho liquibase cách dịch từ các thẻ XML sang cú pháp SQL đúng.
  3. Nếu bạn sử dụng thẻ sql từ liquibase, thì bạn sẽ không tận dụng điểm 2, vì vậy sẽ tốt hơn nếu sử dụng Flyway thay thế.
  4. Liquibase cung cấp một bình để di chuyển một DB hiện có tới tất cả các tệp XML cần thiết một cách tự động, do đó bạn không cần phải làm việc theo cách thủ công trên chúng. Khá hữu dụng.

Bây giờ nó là tùy thuộc vào bạn để quyết định những gì bạn cần cho dự án của bạn, cho dù bạn cần phải di chuyển đến một động cơ DB khác nhau trong tương lai, vv

+7

Phiên bản mới hơn của Liquibase hỗ trợ các thay đổi SQL đơn giản với siêu dữ liệu như các bình luận SQL –

+2

Tôi nghĩ rằng nó đáng giá thêm rằng Liquibase có thể tạo ra các lệnh rollback tự động cho nhiều thay đổi DDL. – Kafkaesque

+0

Đường bay cũng hỗ trợ di chuyển dựa trên java, xem https://flywaydb.org/getstarted/java –

24

tôi đã sử dụng Liquibase. Đối với ứng dụng cấp doanh nghiệp (nơi bạn cộng tác với các nhóm khác nhau) Liquibase phù hợp với bạn. Tôi thích tính năng rollback.

Đối với các ứng dụng nhỏ Đường bay sẽ tốt do tính đơn giản.

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