【发布时间】:2019-03-04 10:31:21
【问题描述】:
我遇到了 spring boot 和 mvn liquibase 的问题。 当我使用
提交更改时,我可以通过 Tag 更新和回滚 liquibasemvn liquibase:update
并使用回滚
mvn liquibase:rollback -Dliquibase.rollbackTag=0.0.0
不幸的是,当我使用 liquibase:update 提交更改时,我无法启动我的 Spring Boot 应用程序。
org.springframework.beans.factory.BeanCreationException:在类路径资源 [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class] 中定义名称为“liquibase”的 bean 创建错误:调用 init 方法失败;嵌套异常是 liquibase.exception.MigrationFailedException: Migration failed for change set classpath:db/changelog/changelog-0.0.1.xml::0.0.1::
这告诉我 Spring Boot 会再次尝试运行变更集。
当我查看 databasechangelog 表时,存在具有不同部署 ID 的重复条目,这可能是问题吗?
Ps:当我让 Spring boot 进行更新时,我可以运行应用程序,但我无法通过 CLI 回滚:(
这是我在 pom.xml 中的配置
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.6.3</version>
<configuration>
<driver>org.postgresql.Driver</driver>
<url>connection/url>
<username>user</username>
<password>password</password>
<promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
<rollbackTag>0.0.0</rollbackTag>
<changeLogFile>destination of rollback file</changeLogFile>
</configuration>
</plugin>
</plugins>
</build>
在 application.properties 中
spring.liquibase.change-log=classpath:db/changelog-master.xml spring.liquibase.test-rollback-on-update=true
我猜更改日志文件的标记是正确的,因为它在 CLI 中也不起作用。
谢谢。
【问题讨论】:
标签: maven spring-boot liquibase