Миграция схемы базы данных с помощью Flyway.

Современные системы учёта как правило имеют довольно сложную структуру базы данных. Несколько десятков таблиц, связей между ними, хранимых процедур. И с каждым обновлением эта структура меняется: добавляются новые поля, таблицы, некоторые удаляются. Со временем становится сложно уследить за тем, в каком состоянии находится база данных в production и development, особенно если отсутствует какая-либо информация о версии базы данных.

Задачу версионирования структуры базы данных и поддержания её в актуальном состоянии можно облегчить с помощью библиотеки Flyway.

Для подключения библиотеки к Maven проекту нужно добавить зависимость:

 

Теперь в root-context нужно добавить бин, который будет заниматься миграцией базы данных:

Также рекомендуется поставить в зависимость фабрику менеджеров сущностей от Flyway, чтобы она точно запускалась после обновления структуры базы данных.

Скрипты по миграции базы данных нужно создавать в src/main/resources/db/migration. Они должны иметь название вида V1__some_name1.sql,   V2__another_name.sql… То есть V<Номер версии><два подчёркивания><имя скрипта>.sql. Flyway при каждом запуске приложения будет смотреть текущее состояние базы данных и запускать скрипты с номерами версий, которые ещё не выполнялись в порядке очерёдности номеров версий.

Flyway создаёт таблицу schema_version на базе данных. В ней можно посмотреть, какие скрипты когда были выполнены.

Если Flyway нужно подключить к уже существующему проекту, то таблицу нужно будет создать вручную и добавить туда одну строчку с первой версией. В дальнейшем все обновления делать через скрипты миграций в src/main/resources/db/migration.

Сайт проекта:

http://flywaydb.org/

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *