[Из песочницы] Использование liuibase плагина для Maven

Привет хабр, много было уже на писано на тему liquibase и Maven, но я не смог найти ничего про liquibase-maven-plugin и его настройку, а ведь это очень удобный плагин. Вот я и решил написать о том, как его настроить.Плагин liquibase-maven-plugin предназначен для управления liquibase из Maven. Вот пример команды mvn liquibase: update, для обновления базы данных.

Для начала предлагаю разобраться с тем, что такое Maven и liquibase.

c70d33fb77e54c74a92cf3abf7ec7a1e.jpg

Мавен — это инструмент для сборки Java проекта: компиляции, создания jar, создания дистрибутива программы, генерации документации. Более подробно о самом Maven можно прочитать в статье Apache Maven — основы

10ffe9fdb41b4c03b9108f0a803a1d86.jpg

Liquibase — это система управления миграциями базы данных. Для ознакомления с liquiabase так же можно прочитать в статье Управление миграциями БД с Liquibase

После того, как мы разобрались с Maven и liquibase, можно перейти к созданию maven проекта и настройке liquibase плагина.Для начала создадим новый Maven проект, его структура будет выглядеть следующим образом:

e45e68cf71fa4f5187355fb33f99b515.jpg

Соответственно, pom файл, данного проекта, будет выглядеть:

4.0.0

liquibaseTest ru.test.liquibase 1.0-SNAPSHOT

Далее в папке «src/main/resources» создадим папку «liquibase» в которой у нас будут храниться changelog файлы.В папке liquibase создадим 2 файла:

db.changelog-master.xml — основной файл миграции, в него с помощью тега включаются файлы ченджлогов каждой версии db.changelog-0.1.0.xml — ченджлог файл, содержащий ченджсеты. Каждый ченджсет это одна транзакция Рассмотрим данные файлы более подробно: db.changelog-master.xml

В строке мы подключаем db.changelog-0.1.0.xml файл с ченджсетами, в которых мы выполняем действия с базой данных.db.changelog-0.1.0.xml

Создание таблицы изображений CREATE TABLE images ( id bigint NOT NULL, alt character varying (255), url_big character varying (255), url_small character varying (255), CONSTRAINT images_pkey PRIMARY KEY (id) )

Теперь нам необходимо настроить liquibase plugin для Maven. Для этого открываем наш pom файл и добавляем туда: org.liquibase liquibase-maven-plugin 3.0.7 src/main/resources/liquibase/db.changelog-master.xml org.postgresql.Driver jdbc: postgresql://localhost:5432/test postgres postgres process-resources update В данной конфигурации мы подключаем liquibase-maven-plugin и для него определяем: changeLogFile — путь до основного файла миграции driver — драйвер для подключения к бд url — url для подключения к бд username — для подключения к бд password — для подключения к бд Внутри тега update мы определяем, что будем обновлять базу данных при сборке проекта, так же возможны и другие варианты.

Вот в принципе и все, ничего сложного нет. Теперь мы можем обновить нашу базу данных одной командой mvn liquibase: update, находясь в папке с проектом, или при сборке основного проекта. В данном случае будет использоваться update.

Более подробно о плагине можно прочитать на его официальном сайте.

Ниже приведу пример полностью сконфигурированного pom.xml

4.0.0

liquibaseTest ru.test.liquibase 1.0-SNAPSHOT

src/main/resources true org.liquibase liquibase-maven-plugin 3.0.7 src/main/resources/liquibase/db.changelog-master.xml org.postgresql.Driver ${server.db.host} ${server.db.user} ${server.db.pass} false process-resources update liquibaseTest

© Habrahabr.ru