2016-05-23 23 views
66

Spring Boot/Node.js tabanlı uygulamalar için bir veritabanı geçiş aracı/çerçevesi kullanmam gerekiyor. Liquibase ve Flyway'in özelliklerini keşfettikten sonra, hangisinin kullanılacağı konusunda biraz kafam karıştı. Geri alma desteği, veritabanı-nötr değişiklikleri vb. Beni Liquibase'e çekerken, diğer yandan basitlik (SQL tabanlı), daha iyi prosedür ve PL/SQL desteği beni Flyway'e doğru çekiyor. Son olarak karar vermeden önce burada daha somut veri noktalarına ihtiyacınız var.Liquibase vs Flyway hangisi?

+3

Yalnızca ortamınıza ve proje planlarınıza göre yanıtlayabileceğiniz bir soru oluşturdunuz. Liquibase - rollback desteği, veritabanı-nötr değişimler vs Flyway - basitlik (SQL tabanlı), daha iyi prosedür ve PL/SQL desteği. –

+0

Roger Aklında başka bir şey var mı? Bunlardan biri tarafından sağlanan herhangi bir önemli özellik gibi değil mi? – Tanmoy

+0

Bunlar farklı araçlardır ve bu nedenle, özelliklerini geliştirme sırasında yapmak istediğiniz şeylerle eşleştirmeniz gerekir. cralfaro'nun cevabı, farklılıklar listesini genişletir, ancak bir çözümle neyi başarmayı amaçladığınızı listelemediniz, bu yüzden herkesin doğrudan cevap vermesi zorlaşır. –

cevap

97

Her iki aleti zaten kullandım ve görüyorum ki, bunlar ana farklılıklar. Eğer sadece bir klasör konumu ihtiyaç ve bir isim sözdizimi tutmak V1__file.sql ...

  • SQL tabanlı, ancak hakkını yazmak gerekir -

    Flyway

    1. Kolay yapılandırma Belirli bir veritabanı motorunuzun sözdizimi (Mysql, DB2, ...)
    2. Java, bu nedenle temizlemek, yürütmek vb. için özel yapılandırma eklemek daha kolaydır.

    1. Liquibase tüm idam changesets takip etmek için "changelog" bir ana dosyası Need.
    2. XML tabanlı, bu nedenle SQL kodu oluşturmak için belirli bir liquibase etiketi kullanmanız gerekir. Bu, kodunuzu farklı bir DB motoruna geçirmeniz için mükemmel: herhangi bir şeyi değiştirmeniz gerekmeyecek ve yalnızca DB sürücüsü , liquibase'e XML etiketlerinden doğru SQL sözdizimine nasıl çeviri yapacağını söyleyecektir.
    3. Eğer sql etiketini liquibase'den kullanırsanız, o zaman point 2'den yararlanamazsınız, bu yüzden Flyway'i kullanmak daha iyi olur.
    4. Liquibase, varolan bir DB'yi tüm gerekli XML dosyalarına otomatik olarak geçirecek bir jar sağlar, bu nedenle el ile çalışmanıza gerek yoktur. Gayet yararlı.

    Şimdi ileride vb

  • +7

    Liquibase'in daha yeni sürümleri, SQL yorumları olarak meta verilerle basit SQL değişikliklerini destekler –

    +2

    Liquibase'in birçok DDL değişikliği için otomatik geri alma komutları üretebileceğini eklemenin faydalı olduğunu düşünüyorum. – Kafkaesque

    +0

    Flyway ayrıca java tabanlı geçişleri de destekler. Https://flywaydb.org/getstarted/java adresine bakın. –

    24

    ben Liquibase kullanılan farklı DB motoru göç gerekip gerekmediğini, projeniz için gerekenleri karar vermek size kalmıştır. Kurumsal düzeyde uygulama için (farklı ekiplerle işbirliği yapıyorsanız) Liquibase size çok uygundur. Geri alma özelliğini seviyorum.

    Küçük uygulamalar için Flyway basitlikten dolayı iyi olacaktır.