У меня есть приложение весенней загрузки на 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} в ваших файлах изменений.
Я узнал это через некоторое время ..., просто моя ошибка, я использовал liquibase.parameters.schema вместо spring.liquibase.parameters.schema.
Это может быть из-за того, что public является ключевым словом в liquibase. попробуйте использовать другое имя вместо public.
public