2016-05-23 25 views
66

Potrzebuję użyć narzędzia/struktury migracji bazy danych dla moich aplikacji opartych na Spring Boot/Node.js. Po zapoznaniu się z funkcjami Liquibase i Flywaya jestem nieco zdezorientowany, do którego użyć. O ile obsługa wycofywania zmian, zestaw zmian neutralnych dla bazy danych itp. Przyciąga mnie do Liquibase, z drugiej strony prostota (oparta na SQL), lepsza procedura i wsparcie PL/SQL przyciągają mnie do Flywaya.Liquibase vs Flyway, którego należy użyć?

Potrzebujesz więcej konkretnych punktów danych, zanim ostatecznie podejmiesz decyzję.

+3

Utworzono pytanie, na które tylko Ty możesz odpowiedzieć na podstawie środowiska i planów projektu. Liquibase - wsparcie rollback'u, zestaw zmian neutralny dla bazy danych itp. Podczas Flywaya - prostota (bazująca na SQL), lepsza procedura i obsługa PL/SQL. –

+0

Roger, czy masz coś jeszcze w głowie? Jak każda ważna funkcja dostarczona przez jedną z nich, ale nie przez inną? – Tanmoy

+0

Są to różne narzędzia, więc musisz odwzorować ich funkcje na to, co chcesz zrobić podczas rozwoju. Odpowiedź cralfaro poszerza listę różnic, ale nie podajesz, co chcesz osiągnąć dzięki rozwiązaniu, więc trudno jest każdemu podać bezpośrednią odpowiedź. –

Odpowiedz

97

Użyłem już obu narzędzi, więc, w związku z tym, są to główne różnice.

Flyway

  1. Łatwy w konfiguracji - wystarczy lokalizację folderu i zachować nazwę składni V1__file.sql ...
  2. SQL oparte, ale trzeba napisać prawo składnia określonego silnika bazy danych (Mysql, DB2, ...)
  3. Jest oparty na Javie, więc dodanie niestandardowej konfiguracji do czyszczenia, wykonywania itp. jest łatwiejsze.

Liquibase

  1. Need główny plik "changelog", aby śledzić wszystkie realizowanych Zestawienia zmian.
  2. Jest oparty na XML, więc do utworzenia kodu SQL należy użyć określonych znaczników płynów. Jest to idealne, aby przenieść twój kod do innego silnika DB : nie będziesz musiał niczego zmieniać, a tylko sterownik DB powie, w jaki sposób przetłumaczyć ze znaczników XML do właściwej składni SQL.
  3. Jeśli użyjesz znacznika sql z liquibase, to nie wykorzystasz punktu 2, więc zamiast tego lepiej użyć Flywaya.
  4. Liquibase zapewnia słoik do migracji istniejącego DB do wszystkich potrzebnych plików XML automatycznie, więc nie trzeba pracować na nich ręcznie. Całkiem użyteczne.

Teraz to do ciebie, aby zdecydować, co jest potrzebne dla danego projektu, czy trzeba przenieść do innego silnika DB w przyszłości itp

+7

Nowsze wersje Liquibase obsługują proste zestawy zmian SQL z metadanymi jako komentarzami SQL. –

+2

Myślę, że warto dodać, że Liquibase może generować polecenia automatycznego wycofywania dla wielu zmian DDL. – Kafkaesque

+0

Flyway obsługuje także migracje oparte na Javie, patrz https://flywaydb.org/getstarted/java –

24

użyłem Liquibase. W przypadku aplikacji na poziomie przedsiębiorstwa (gdzie współpracujesz z różnymi zespołami), Liquibase jest bardzo odpowiedni dla ciebie. Lubię funkcję przywracania.

Dla małych aplikacji Flyway będzie dobry ze względu na prostotę.

Powiązane problemy