代码之家  ›  专栏  ›  技术社区  ›  tmengelk

liquibase是否有一种方法来测试回滚策略而不实际执行它?

  •  1
  • tmengelk  · 技术社区  · 8 年前

    我是个新来的酒鬼。。。

    今天,我使用--Liquibase格式的sql编写了一个Liquibase变更集。

    我创建了两个表,其中第二个表与第一个表有外键依赖关系。

    我的回滚策略是(错误地)删除表1;放下表2。当我运行更新并测试回滚时,由于外键约束,它失败了。然而,当我纠正错误并尝试重新运行时,它失败了,因为校验和不匹配。

    我知道最明显的答案是制造更多的原子变更集,然而。。。

    Liquibase是否支持一种在不实际运行的情况下测试这类内容的方法,这样我就可以避免编辑后的回滚中的校验和问题?

    失败:是否有解决校验和问题的方法,可以让我在运行更新后编辑文件?(ctrl+z?)

    2 回复  |  直到 8 年前
        1
  •  2
  •   SteveDonie    8 年前

    对你的问题的简单回答是,任何一个液化者都有这样的东西。

    Liquibase是一个很好的工具包,但它没有太多的功能,对于如何使用它,或者您的工作流程应该是什么,它也没有太多的“意见”。在您的情况下,我建议解决这个问题的一种方法是删除数据库,然后从变更日志中重新创建它。如果您已经在多个地方部署了变更日志,那么这可能是不可能的,如果您不准备这样做,那么这可能是一个问题。

    有一个选项可以指定 validChecksums 属性,所以您可以使用它,但一般来说,如果您使用它,则会使变更日志更加复杂。

    如果您想查看功能更全面、能够在部署前预测变化的产品,请查看我公司的产品, Datical DB . 它以液化酶为核心,但添加了更多(并相应定价)。

        2
  •  0
  •   pgiecek    6 年前

    Liquibase提供 updateTestingRollback 命令,该命令基本上更新数据库,然后测试其回滚,如果成功,则再次应用更改。

    您的无效校验和问题可以通过以下方法解决 clearCheckSums 命令它将从数据库中删除当前校验和,在下一次更新时,已部署的更改集将重新计算其校验和,并将部署尚未部署的更改集。

    有关更多详细信息,请查看Liquibase commands