Параметры Liquibase в пользовательских sql с подпружиненной загрузкой - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть приложение весенней загрузки на jdk 11, использующее maven, со следующей зависимостью жидкой базы:

   <dependency>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-core</artifactId>
            <version>3.6.2</version>
        </dependency>

Основной файл журнала изменений называется db.changelog.xml, находится в каталоге PROIECTTEST \ src \main \ resources \ db со следующей конфигурацией в application.properties:

spring.liquibase.change-log=classpath:/db/db.changelog.xml
spring.liquibase.default-schema=public
liquibase.parameters.schema=public

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

<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">

    <include relativeToChangelogFile="true" file="changelog/initial/test.xml"/>     
</databaseChangeLog>

Файл my changeset test.xml, расположенный в PROIECTTEST \ src \ main \resources \ db \ changelog \ initial выглядит следующим образом:

<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
    <changeSet author="test" id="1540963204914-19">
    <sql > 
    select * from ${schema}.test
    </sql>

    </changeSet>

</databaseChangeLog>

Когда я запускаю сервер весенней загрузки с помощью команды mvn spring-boot: запустить liquibase sql не удается со следующей ошибкой: синтаксическая ошибка в или около"$".

Я что-то упустил?Из того, что я прочитал, свойство application.properties - это все, что нужно, и его использование $ {propertyName} в ваших файлах изменений.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Я узнал это через некоторое время ..., просто моя ошибка, я использовал liquibase.parameters.schema вместо spring.liquibase.parameters.schema.

0 голосов
/ 16 ноября 2018

Это может быть из-за того, что public является ключевым словом в liquibase. попробуйте использовать другое имя вместо public.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...