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 Plugin может помочь вам автоматизировать интеграционное тестирование классов, связанных с базой данных.
Translated by ChatGPT gpt-3.5-turbo/36 on 2023-11-17 at 12:26