2016-05-23 11 views
66

Мне нужно использовать средство миграции базы данных/фреймворк для моих приложений Spring Boot/Node.js. Изучив особенности Liquibase и Flyway, я немного смущен, и один из них можно использовать. В то время как поддержка отката, нейтральная замена базы данных и т. Д. Привлекает меня к Liquibase, с другой стороны, простота (SQL-based), лучшая процедура и поддержка PL/SQL тянет меня к Flyway.Liquibase vs Flyway, какой из них использовать?

Чтобы получить окончательное решение об этом, вам нужно больше конкретных данных.

+3

Вы создали вопрос, на который вы можете ответить только на основе вашей среды и планов проекта. Liquibase - поддержка отката, нейтральная база данных и т. Д., В то время как Flyway - простота (основанная на SQL), лучшая процедура и поддержка PL/SQL. –

+0

У Роджера есть что-нибудь еще в вашем уме? Как любая важная функция, предоставляемая одним из них, но не другим? – Tanmoy

+0

Это разные инструменты, поэтому вам нужно сопоставить их функции с тем, что вы хотите сделать во время разработки. Ответ cralfaro расширяет список различий, но вы не указали, чего хотите достичь с помощью решения, поэтому ему трудно дать прямой ответ. –

ответ

97

Я уже использовал оба инструмента, и поэтому, в виду, это основные отличия.

пролетный путь

  1. Простота настройки - нужно просто расположение папки и сохранить имя синтаксис V1__file.sql, ...
  2. SQL основе, но вам нужно написать право синтаксис вашего конкретного механизма базы данных (Mysql, DB2, ...)
  3. Является ли Java, поэтому добавление пользовательской конфигурации для очистки, выполнения и т. д. проще.

LiquiBase

  1. Нужен главный файл "ChangeLog", чтобы отслеживать все выполненные ревизий.
  2. Является основанной на XML, поэтому вам нужно использовать специальные теги Liquibase для создания кода SQL. Это идеально подходит для переноса кода на другой механизм DB: вам не нужно ничего менять, и только драйвер DB скажет linibase, как перевести с XML-тегов на правильный синтаксис SQL.
  3. Если вы используете тег sql от Liquibase, то вы не воспользуетесь точкой 2, поэтому лучше использовать Flyway.
  4. Liquibase предоставляет банку автоматическую миграцию существующей БД во все необходимые файлы XML, поэтому вам не нужно вручную работать с ними. Очень полезно.

Теперь это до вас, чтобы решить, что вам нужно для вашего проекта, нужно ли перейти на другую БД двигателя в будущем и т.д.

+7

Новые версии Liquibase поддерживают простые SQL-команды с метаданными как комментарии SQL –

+2

Я думаю, что стоит добавить, что Liquibase может генерировать команды автоматического отката для многих изменений DDL. – Kafkaesque

+0

Flyway также поддерживает переносы на основе java, см. Https://flywaydb.org/getstarted/java. –

24

Я использовал LiquiBase. Для приложений уровня предприятия (где вы сотрудничаете с разными командами) Liquibase очень подходит для вас. Мне нравится функция отката.

Для небольших применений Flyway будет хорошим благодаря простоте.