Spring boot 液化回卷弹簧靴

Spring boot 液化回卷弹簧靴,spring-boot,liquibase,Spring Boot,Liquibase,我有一个使用spring boot构建的微服务。我集成了Liquibase,它执行所有变更集s,但回滚s除外。 下面是示例liquibase xml文件 <changeSet id="6" author="Kasun"> <insert tableName="user"> <column name="firstNale" value="Kasun" ></column> <col

我有一个使用spring boot构建的微服务。我集成了Liquibase,它执行所有变更集s,但回滚s除外。 下面是示例liquibase xml文件

<changeSet id="6" author="Kasun">
        <insert tableName="user">
            <column name="firstNale" value="Kasun" ></column>
            <column name="lastName" value="Ranasinghe" ></column>
        </insert>
    </changeSet>
    <changeSet id="7" author="Kasun">
        <rollback changeSetAuthor="Kasun"  >
            <createTable tableName="user" />
        </rollback>
    </changeSet>


当我运行SpringBoot应用程序时,它不会执行回滚。但在数据库中,更改会在执行时更新

在您的示例中,
changeSet id=“7”
没有实际更改。这只是一个rollback语句,逻辑上不正确,因为没有表作为变更集的一部分被删除。您可以参考关于如何编写回滚的

回滚应该在您将架构迁移到较低版本时执行,例如在降级Spring Boot应用程序版本之后。这不是Spring Boot开箱即用的方法,Spring Boot只使用常规的Liquibase更新操作应用缺少的变更集


Spring Boot中有一个
liquibase.rollback文件
属性,可用于编写回滚SQL脚本。在回滚模式时,必须手动运行此SQL。您可以尝试将其自动化。

报告问题时,始终包括三件事:1。这就是我所做的。2.这就是我所期望的。3.事实就是这样。在这个问题上,我对这三点都不清楚。我认为您可能对回滚的用途感到困惑——它们通常作为变更集的“子变更”添加,以指示如何“撤消”变更。有一个创建表的回滚看起来很奇怪。一个更好的例子是,您可能有一个创建表的变更集,然后该变更集中的回滚会删除该表。谢谢,我将更新这个问题。我可能会在这里冒险,但创建表不是一个无法回滚的DDL吗?除了create table,您是否在rollback子句中尝试了其他语句