#java #database #maven #migration #liquibase
#java #База данных #maven #миграция #ликвидная база
Вопрос:
У меня есть одна проблема с liquibase-maven-plugin 4.2.2. Если я укажу путь к журналам, как это было раньше
changeLogFile= classpath:db/changelog/db.changelog-master.xml
Я получаю сообщение об ошибке
Ошибка при чтении файла журнала изменений: найдено 2 файла, которые соответствуют classpath:db/changelog/db.changelog-master.xml : jar:file:/Users/macbook/IdeaProjects/geek-study-eshop/shop-database/target/shop-database-1.0-SNAPSHOT.jar!/db/changelog/db.changelog-master.xml , file:/Users/macbook/IdeaProjects/geek-study-eshop/shop-database/target/classes/db/changelog/db.changelog-master.xml
Я понимаю причину этой ошибки, и ее можно устранить, изменив changeLogFile
на target/db/changelog/db.changelog-master.xml
. Но в этом случае у меня будет target
префикс в именах файлов, хранящихся в DATABASECHANGELOG
таблице. Но я не хочу этого по некоторым причинам. Я хочу, чтобы все имена файлов были с префиксом db/changelog/...
или classpath:db/changelog/...
. Возможно ли это как-то сделать без использования logicFilePath
атрибута?
Ответ №1:
Я нашел решение! Нет никакого способа изменить liquibase-maven-plugin
поведение, но можно изменить фазу maven, на которой мы запускаем liquibase:diff
command. Просто используйте mvn clean compile liquibase:diff
! Мы выполняем diff после компиляции и перемещения ресурсов, но перед упаковкой jar.