Почему свойство flyway.locations не действует, если оно указано в конфигурационном файле и загружено из каталога пользователя самим flyway? - PullRequest
0 голосов
/ 26 октября 2018

Я использую Flyway Community Edition 5.1.4 и пытаюсь запустить миграцию из двух разных каталогов с помощью maven.Я создал пример проекта, который можно загрузить из этого репозитория github .

. Я создал 2 сценария миграции flyway: 1-й в src/main/resources/dir1 и 2-й в src/main/resources/dir2.flyway.conf помещается в корневой каталог проекта.

Вариант 1:
Команда запуска: mvn flyway:info
Вывод: миграции не найдены ( Пример снимка экрана 1 )

Это нормально, потому что скрипты миграции не входят в стандартную справочную систему src/main/resources/db/migration

Случай 2:
Команда запуска: mvn flyway:info -Dflyway.configFiles=/flyway.conf
Вывод: оба сценария миграции найдены ( Снимок экрана 2 )

В случае 2 файл конфигурации flyway явно указан в команде maven для загрузки сценариев миграции из обоих каталогов classpath:/dir1 и classpath:/dir2.Однако пролет может загружать flyway.conf сам по себе.Файл конфигурации должен находиться в каталоге <userhome>.Поэтому, если я поместил тот же самый файл flyway.conf в мой каталог userhome, файл загружается (я могу видеть это, если я запускаю команду maven с ключом -X), но flyway не находит сценарии миграции.

Случай 3:
Команда запуска: mvn flyway:info -X
Вывод: миграции не найдены ( Случай снимка экрана 3 ), хотя тот же файл конфигурациизагружен.Отображается в выводе maven: [DEBUG] Loading config file: C:\Users\username\flyway.conf

Это происходит только со свойством flyway.locations.Другие свойства, такие как flyway.url=, flyway.user и т. Д., Работают нормально, даже в случае 3.

Итак, вопрос в том, почему свойство flyway.locations не действует, если файл flyway.conf загружен из userdirectory по самому маршруту?

...