Liquibase Groovy-DSL Spring
Liquibase Groovy-DSL Spring
我正在开发一个spring-shell
数据库迁移工具。
目前我尝试将 liquibase 与 groovy-dsl extension 一起使用。
我的 build.gradle 包含扩展 jar,我还在 spring-shell-plugin.xml
中声明了 liquibase
spring-shell-plugin.xml
<bean id="liquibase" class="liquibase.integration.spring.SpringLiquibase" depends-on="postgresService">
<property name="dataSource" ref="psqlDataSource"/>
<property name="changeLog" value="com.example.db.DbChangelog_master"/>
<property name="defaultSchema" value="${postgres.schema}"/>
</bean>
但是每次我启动应用程序 liquibase 都会抛出以下错误
Caused by: liquibase.exception.UnknownChangelogFormatException: Cannot find parser that supports com.example.db.DbChangelog_master
at liquibase.parser.ChangeLogParserFactory.getParser(ChangeLogParserFactory.java:70)
at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:226)
at liquibase.Liquibase.update(Liquibase.java:202)
at liquibase.Liquibase.update(Liquibase.java:192)
at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:434)
at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:391)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
... 13 more
文档有点少,而且 jar 包含在类路径中。
groovy 脚本是否需要在 src/main/resources
中?目前它们在 src/main/groovy
中的单独包中
我认为你的 属性
<property name="changeLog" value="com.example.db.DbChangelog_master"/>
不正确。这应该是您的更改日志文件的路径。如果该文件是 groovy 文件,则它可能是
<property name="changeLog" value="DbChangelog_master.groovy"/>
如果该文件在类路径中可用。
我正在开发一个spring-shell
数据库迁移工具。
目前我尝试将 liquibase 与 groovy-dsl extension 一起使用。
我的 build.gradle 包含扩展 jar,我还在 spring-shell-plugin.xml
spring-shell-plugin.xml
<bean id="liquibase" class="liquibase.integration.spring.SpringLiquibase" depends-on="postgresService">
<property name="dataSource" ref="psqlDataSource"/>
<property name="changeLog" value="com.example.db.DbChangelog_master"/>
<property name="defaultSchema" value="${postgres.schema}"/>
</bean>
但是每次我启动应用程序 liquibase 都会抛出以下错误
Caused by: liquibase.exception.UnknownChangelogFormatException: Cannot find parser that supports com.example.db.DbChangelog_master
at liquibase.parser.ChangeLogParserFactory.getParser(ChangeLogParserFactory.java:70)
at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:226)
at liquibase.Liquibase.update(Liquibase.java:202)
at liquibase.Liquibase.update(Liquibase.java:192)
at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:434)
at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:391)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
... 13 more
文档有点少,而且 jar 包含在类路径中。
groovy 脚本是否需要在 src/main/resources
中?目前它们在 src/main/groovy
我认为你的 属性
<property name="changeLog" value="com.example.db.DbChangelog_master"/>
不正确。这应该是您的更改日志文件的路径。如果该文件是 groovy 文件,则它可能是
<property name="changeLog" value="DbChangelog_master.groovy"/>
如果该文件在类路径中可用。