gpt4 book ai didi

spring-boot - Liquibase 回滚 Spring Boot

转载 作者:行者123 更新时间:2023-12-03 22:17:10 27 4
gpt4 key购买 nike

我有一个使用 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>

当我运行 spring boot 应用程序时,它不会执行回滚。但是在数据库中的更改会随着执行而更新。

最佳答案

在您的示例中 changeSet id="7"没有实际变化。这只是一个回滚语句,在逻辑上是不正确的,因为没有表作为变更集的一部分被删除。您可以引用Rolling Back ChangeSets docs关于如何编写回滚。

当您将架构迁移到较低版本时,应该执行回滚,例如降级 Spring Boot 应用程序版本后。这不是 Spring Boot 开箱即用的事情,它仅使用常规 Liquibase 更新操作应用丢失的变更集。

有一个liquibase.rollback-file Spring Boot 中的属性,可用于编写回滚 SQL 脚本。当您回滚模式时,您必须手动运行此 SQL。你可以试试Maven Liquibase Plugin使其自动化。

关于spring-boot - Liquibase 回滚 Spring Boot ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49634064/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com