Журнал изменений Liquibase не распознается при использовании mvn spring-boot: run - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть модульное загрузочное приложение Spring с двумя модулями:

  1. Модуль приложения, содержащий SpringBootApplication и бизнес-логи c.
  2. Модуль DB, содержащий всю Liquibase зависимости, журнал изменений и файлы sql.

Пом. xml в модуле приложения содержит зависимость от модуля БД. Также модуль приложения использует maven-war-plugin; который копирует все ресурсы (журнал изменений и sql файлы) из модуля БД в модуль приложения.

Этот параметр работает, как и ожидалось, при развертывании на сервере : Все мои sql выполняются сценарии и создаются таблицы DBCHANGELOG.

Однако, если я запускаю приложение с помощью mvn spring-boot: run, создаются только таблицы DBCHANGELOG. Ни один из моих сценариев не выполняется, и я не получаю никаких ошибок от Liquibase. Есть какие-нибудь идеи по этому поводу?

Я подумал, что, может быть, Spring-Boot: Run пропустил этап, на котором я скопировал все ресурсы. Однако журнал изменений распознается и успешно читается.

Мой модуль БД выглядит следующим образом:

enter image description here

Мой список изменений:

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
            https://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
    <includeAll path="sql"/>
</databaseChangeLog>

1 Ответ

0 голосов
/ 17 апреля 2020

Убедитесь, что у вас есть свойство spring.liquibase.change-log=classpath:sql/changeLog.xml (каталог ресурсов вашего "db module" должен быть включен в classpath).

И попробуйте использовать relativeToChangelogFile="true", чтобы указать местоположение вашего каталога sql .

<includeAll path="sql" relativeToChangelogFile="true"/>
...