Мультимодульное загрузочное приложение Spring Скрипты миграции пролетного пути - PullRequest
0 голосов
/ 05 мая 2020

У меня есть многомодульное загрузочное приложение Spring (для простоты это просто moduleA и moduleB). Оба модуля обращаются к одной и той же БД. Кроме того, я использую пролет для инициализации таблиц и заполнения исходных данных в БД.

Когда я использую схему именования пролетного пути , я сталкиваюсь с проблемой, что

V1_0__init.sql в moduleA конфликтует с V1_0__init.sql в moduleB.

Я знаю, что могу переименовать один из файлов в V1_1__init.sql, и он работает. Но идея состоит в том, что модули могут сосуществовать, не зная, как скрипты миграции названы в другом модуле. Возможно ли это с пролетным путем?

1 Ответ

0 голосов
/ 05 мая 2020

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

Но вернемся к реальной проблеме ... почему вы пишете два модуля с одной базой данных? Это более проблематично, чем c злоупотребление именами Flyway. Я могу представить себе способы решения этой проблемы, но я не хочу упоминать ни одной идеи, когда фундамент ошибочен. Если одному модулю нужны данные от другого, вам необходимо создать интерфейсы между ними (или вывести их в третий), поскольку вы нарушаете модульное разделение задач. Проще говоря: не делайте этого.

...