【问题标题】:Downgrade database with liquibase - Spring使用 liquibase 降级数据库 - Spring
【发布时间】:2017-06-05 10:18:00
【问题描述】:

我有一个用 Spring 编写的小项目。对于数据库迁移和种子,我使用 liquibase。

一段时间后,我请求将我的数据库降级到以前的版本。这可能与liquibase有关吗?您推荐什么工作流程?我可以通过打包新的war文件并运行一些纯sql脚本来做到这一点,但这对我来说不是一个好方法。我只想用 liquibase 来做这件事——也许回滚到以前的版本。

提前谢谢你。

【问题讨论】:

    标签: java mysql spring maven liquibase


    【解决方案1】:

    Liquibase 不能简单地(自动)回滚已经存在的更新。您唯一可以做的事情 - 编写额外的变更集,您将在其中手动描述数据库中所需的更改,这会将结构返回到所需的状态。

    您也可以提前描述rollback actions,以使这个过程更美好,可以通过每个变更集中的rollback部分来完成。

    【讨论】:

      【解决方案2】:

      请记住,数据库回滚通常不是可行的。例如,在 v1 中,您有一列 A 充满了数据(为了使讨论更容易:没有空约束且没有默认值)。在 v2 中,您删除了 A 列。您希望如何自动执行回滚/降级?

      我建议添加另一个迁移,将您的数据库迁移到看起来与 v1 完全相同/相似的状态 v3。在此迁移中,您可以处理所有丢失的数据等

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-26
        • 1970-01-01
        • 1970-01-01
        • 2011-04-27
        • 2012-08-22
        • 2013-05-03
        • 2020-11-20
        • 1970-01-01
        相关资源
        最近更新 更多