Ключевым отличием файла создания самоуправляемой схемы от Liquibase (или других инструментов миграции схемы ) является то, что последний предоставляет журнал изменений схемы. Это запись изменений схемы с течением времени. Он позволяет разработчику базы данных указывать изменения в схеме и позволяет программно обновлять или понижать версию схемы по запросу.
Есть и другие преимущества, такие как:
- Независимость от поставщика базы данных (это сомнительно, но они пытаются)
- автоматизированная документация
- различия схемы базы данных
Альтернативный инструмент - пролетный путь .
Вы могли бы использовать инструмент миграции схемы, если хотите или должны автоматически управлять обновлениями схемы без потери данных. То есть вы ожидаете, что схема изменится после того, как ваша система будет развернута в долговременной среде, такой как сайт клиента или стабильная тестовая среда.
Я видел, как Liquibase дисциплинирует разработчиков, когда дело доходит до изменения схемы. Вы просто не можете пойти и перезаписать изменение другого разработчика и выполнить. Вместо этого вы создаете свой собственный набор изменений и добавляете его в конец последовательности изменений, которые нужно выполнить. Это также проясняет, какие изменения произошли, когда и кто их принес.
Очень «версионный» подход к обслуживанию схемы.
Во-первых, создается впечатление «ненужной работы».
источник
Когда у вас есть несколько экземпляров базы данных в dev, qa, production, и вы хотите иметь инструмент для автоматического отслеживания истории изменений и разумного применения изменений (применение различий текущей схемы и окончательной схемы), такие инструменты, как liquibase или flyway, будут очень полезны. .
источник
Я считаю, что Liquibase великолепен, когда ваша философия заключается в том, что о базе данных думают второстепенно. Эта философия является причиной большинства плохих баз данных в производстве - и большинство из них плохие. База данных должна быть спроектирована так, чтобы полностью отображать всю бизнес-систему, а не составлять отдельные части разработчиками приложений, каждый из которых работает в своей изолированной системе. Последний метод приводит к обходным путям, денормализованным данным, плохим отношениям между таблицами, дублированию бизнес-областей и общей беспорядочной системе с высокими затратами на обслуживание, которую клиент возненавидит вскоре после развертывания из-за проблем, которые она вызывает. Если база данных спроектирована так, чтобы ТОЧНО отражать деловые отношения, ее срок службы будет в 5 раз дольше и будет служить своей цели в 5 раз лучше, чем база данных, разработанная по частям, как, к сожалению, большинство.
Liquibase сама по себе не является проблемой, но позволяет разработчикам приложений разработать базу данных на практике. Это проблема.
источник
Я думаю, почему на Liquibase можно ответить, прочитав следующую статью http://shengwangi.blogspot.com/2016/04/liquibase-helloworld-example.html
Если вы внимательно прочитали его, то возможность перехода на более низкую версию с более высокой версии с помощью простых команд mvn или CLI очень полезна, чего вы не получите, если пройдете через подход к фиксации своего файла sql в GIT, потому что тогда вы необходимо вручную запускать эти сценарии, а также у вас нет набора изменений, например: - кто сделал автор изменений и т. д.
источник
Как DevOps человек в моей команде, я бы предпочел, чтобы все мои файлы SQL были в одном месте, то есть в моем SCM (Управление исходным кодом)
Также на этапе CI / CD, если вместе с ним создается схема БД, это экономит много времени и ресурсов. Вам не нужно было бы, чтобы другой человек управлял вашей базой данных для этого клиента.
В этом помогает ORM, например Flyway, Liquibase, EF и т. Д.
источник