Flyway позволяет изменить базу данных, запустив набор сценариев в определенном порядке. Эти сценарии называются «миграциями», поскольку они позволяют «переносить» вашу базу данных из одной версии в другую.
Идея состоит в том, что вы можете начать с пустой базы данных, и каждый сценарий миграции будет последовательно приводить эту базу в действие. от пустой до текущей версии. Однако также можно начать с существующей базы данных, создав «базовую» миграцию.
Как сказал SudhirR , основным вариантом использования Flyway является определение изменений схемы. Тем не менее, вполне возможно изменить данные. Поскольку Flyway просто запускает простой SQL, в принципе почти все, что вы можете сделать в сценарии SQL, вы можете сделать и при миграции на Flyway.
В описанном вами случае должна быть возможность использовать Flyway для миграции клиента. база данных. Вы можете предпринять следующие шаги:
- Создать сценарий sql, включающий весь DDL (включая индексы, триггеры, процедуры и т. Д.) Рабочей базы данных. Для этого вам нужно будет добавить операторы вставки для всех справочных данных, присутствующих в базе данных.
- Сохраните этот скрипт в своем проекте Flyway как что-то вроде 'V1__base_version.sql'
- Запустите
flyway baseline
команда для вашей производственной базы данных - Это настроит вашу производственную базу данных для использования с Flyway
- Добавьте новый сценарий миграции для переноса данных вашего клиента в новую версию
- например, создать новую таблицу, скопировать данные из старой таблицы в новую таблицу, удалить старую таблицу
- Запустить
flyway migrate
, чтобы обновить производство
Эти шаги адаптированы со страницы документации Flyway здесь .
Конечно, вы должны прочитать Flyway docs и вручную протестировать одноразовую БД, прежде чем что-либо предпринимать противпроизводство. Тем не менее, я думаю, что в принципе Flyway может подойти для вашего случая использования.