Liquibase не загружает * .sql из пути к классам внутри changeSet - PullRequest
0 голосов
/ 13 февраля 2019

Мне нужно настроить changeSet для выполнения sql, загруженного из jar.

У меня есть внутренний проект changeSet, который работает правильно

<changeSet id="1" author="sergii" dbms="h2">
  <sqlFile
    encoding="utf8"
    path="schema-ms-sql.0.0.1.sql"
    relativeToChangelogFile="true"
    splitStatements="true"
    stripComments="true"/>
</changeSet>

Некоторые сценарии предоставляются из разных библиотек (в моем случае этоis spring-boot-starter-batch), например:

classpath:/org/springframework/batch/core/schema-h2.sql

Обратите внимание, что jar находится в проекте и доступен (build \ test \ run time).В результате мне нужно зарегистрировать один также в моем changeSet, пытаясь:

<changeSet id="2" author="sergii" dbms="h2">
  <sqlFile
    encoding="utf8"
    path="classpath*:/org/springframework/batch/core/schema-h2.sql"
    relativeToChangelogFile="true"
    splitStatements="true"
    stripComments="true"/>
</changeSet>

, и он не работает с любой конфигурацией (например, "classpath:/org/springframework/batch/core/schema-h2.sql", "/org/springframework/batch/core/schema-h2.sql", "org/springframework/batch/core/schema-h2.sql", "classpath*:/org/springframework/batch/core/schema-h2.sql"и т. д.) из-за

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is liquibase.exception.UnexpectedLiquibaseException: java.io.IOException: File does not exist: 'classpath*:/org/springframework/batch/core/schema-h2.sql'

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

Есть какие-нибудь идеи, как создавать пакетные скриптыработать через changeSet или включить в аудит ликвидазы?

1 Ответ

0 голосов
/ 13 февраля 2019

Решение состоит в том, чтобы изменить атрибут для sqlFile тега:

relativeToChangelogFile="false"

Результат changeSet ниже:

<changeSet id="2" author="sergii" dbms="h2">
  <sqlFile
    encoding="utf8"
    path="classpath:/org/springframework/batch/core/schema-h2.sql"
    relativeToChangelogFile="false"
    splitStatements="true"
    stripComments="true"/>
</changeSet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...