Kea*_*eaz 4 liquibase spring-boot
我有一个使用 spring boot 构建的微服务。我整合了Liquibase并执行所有变更小号除了回滚秒。下面是示例 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>
Run Code Online (Sandbox Code Playgroud)
当我运行 spring boot 应用程序时,它不会执行回滚。但是在数据库中的更改会随着执行而更新。
在您的示例changeSet id="7"中没有实际更改。它只是一个回滚语句,在逻辑上是不正确的,因为没有表作为变更集的一部分被删除。您可以参考Rolling Back ChangeSets 文档了解如何编写回滚。
当您将模式迁移到较低版本时,例如在降级 Spring Boot 应用程序版本之后,应该执行回滚。这不是 Spring Boot 开箱即用的事情,它仅使用常规 Liquibase 更新操作应用丢失的变更集。
liquibase.rollback-fileSpring Boot 中有一个属性可用于编写回滚 SQL 脚本。当您回滚模式时,您必须手动运行此 SQL。您可以尝试使用Maven Liquibase Plugin来自动化它。
| 归档时间: |
|
| 查看次数: |
6014 次 |
| 最近记录: |