【问题标题】:Spring boot doesn't recognize mvn liquibase cli-changes and vice versaSpring Boot 无法识别 mvn liquibase cli-changes,反之亦然
【发布时间】:2019-03-04 10:31:21
【问题描述】:

我遇到了 spring boot 和 mvn liquibase 的问题。 当我使用

提交更改时,我可以通过 Tag 更新和回滚 liquibase
mvn 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 的重复条目,这可能是问题吗?

Here's the screenshot

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


    【解决方案1】:

    我猜 maven 中的类路径与 springboot 应用程序中的类路径不同。 Liquibase 计算类路径并将其存储在 db 的某个属性中(我不知道它的名称)。因此,当您使用 maven 准备数据库,然后运行应用程序时,文件的路径是不同的,因此对于 liquibase,这意味着类似于新的更改日志文件。

    您可以通过将logicalFilePath 属性添加到所有更改日志文件来解决此问题。

    【讨论】:

    • 我有同样的问题,我希望你写更多关于这个logicalFilePath并给我们更多的线索
    猜你喜欢
    • 2017-06-11
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 2019-02-26
    • 2017-10-04
    • 1970-01-01
    相关资源
    最近更新 更多