The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:
Liquibase - это инструмент управления миграциями для реляционных баз данных. Он версионирует изменения схемы и данных в базе данных, подобно тому, как Git или SVN работают с исходным кодом. Благодаря своему плагину для Maven, Liquibase может использоваться в сценариях автоматизации сборки.
Допустим, вы используете MySQL (PostgreSQL или любую другую конфигурацию базы данных будут очень похожи.)
Добавьте liquibase-maven-plugin
в ваш pom.xml
(получите его последнюю версию в Maven Central):
Чтобы проверить, что это работает, выполните команду mvn liquibase:help
.
Я рекомендую вам хранить учетные данные базы данных в settings.xml
и в соответствующих профилях. Например:
Когда вы запускаете Maven, не забудьте включить один из профилей. Например: mvn -Pproduction
.
Я предполагаю, что у вас уже есть база данных с схемой (таблицы, триггеры, представления и т. д.) и некоторыми данными. Вам нужно “инжектировать схему” и создать файл начальной схемы для Liquibase. Другими словами, мы должны сообщить Liquibase, на каком этапе мы находимся, чтобы он начал применять изменения с этой точки.
Плагин Maven этого не поддерживает, поэтому вам придется запустить Liquibase напрямую. Но это не так сложно. Сначала запустите mvn liquibase:help
, чтобы загрузить все артефакты. Затем замените заполнители на свои реальные учетные данные:
Liquibase проанализирует вашу текущую схему базы данных и скопирует свою собственную схему в src/main/liquibase/2014/000-initial-schema.xml
.
Теперь создайте основной набор изменений XML и сохраните его в src/main/liquibase/master.xml
:
Это точка входа для Liquibase. Он начинается с этого файла и загружает все остальные изменения, доступные в src/main/liquibase/2014
. Они могут быть либо в формате .xml
, либо в формате .sql
. Я рекомендую использовать в основном формат XML, поскольку он проще в поддержке и работает быстрее.
Давайте создадим простой набор изменений, который добавляет новый столбец в существующую таблицу.
Мы сохраняем этот файл в src/main/liquibase/2014/002-add-user-address.xml
. В больших проектах вы можете называть ваши файлы именами билетов, в которых они были созданы. Например, 045-3432.xml
, что означает изменение номер 45, полученное из билета #3432.
Важно иметь этот числовой префикс перед именами файлов, чтобы правильно их сортировать. Мы хотим, чтобы изменения применялись в правильном хронологическом порядке.
Вот и все. Мы готовы запустить mvn liquibase:update -Pproduction
, и наша рабочая база данных будет обновлена - новый столбец будет добавлен в таблицу user
.
Также обратите внимание, как плагин MySQL Maven может помочь вам автоматизировать интеграционное тестирование классов, связанных с базой данных.
Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-15 at 06:43