liquibase 是否有一种方法可以在不实际执行的情况下测试回滚策略?
Does liquibase have a method to test a rollback strategy without actually executing it?
我是 Liquibase 的新手 运行d...
今天我使用 --liquibase 格式化 sql 编写了一个 Liquibase 变更集。
我创建了两个表,其中第二个表对外键依赖于第一个表。
我的回滚策略是(错误地)drop table1;删除表 2。当我 运行 更新并测试回滚时,由于外键约束,它失败了。然而,当我纠正我的错误并试图重新运行它时,它失败了,因为校验和不匹配。
我知道显而易见的答案是创建更多原子变更集,但是...
Liquibase 是否支持一种无需实际 运行 即可测试此类事物的方法,这样我就可以避免编辑回滚时校验和的问题?
失败:是否有校验和问题的变通方法可以让我在 运行 更新后编辑我的文件? (ctrl+z?)
对你的问题的简短回答是,没有 Liquibase 没有这样的东西。
Liquibase 是一个很棒的工具包,但它没有太多花里胡哨的东西,也没有太多关于如何使用它或你的工作流程应该做什么的 'opinion'是。对于您的情况,我建议解决该问题的一种方法是删除数据库,然后 re-create 从更改日志中删除它。如果您已经在多个地方部署了变更日志,那可能是不可能的,如果您不准备这样做,那可能是个问题。
有一个选项可以在变更集上指定 validChecksums
属性,因此您可以使用它,但一般来说,如果您使用它,您的变更日志就会变得更加复杂。
如果您想了解更多 full-featured 并且能够在部署之前预测变化的东西,请查看我公司的产品 Datical DB。它以 liquibase 为核心,但增加了更多(并相应定价)。
Liquibase 提供 updateTestingRollback
基本更新数据库的命令,然后测试其回滚,如果成功,再次应用更改。
您的无效校验和问题可以通过 clearCheckSums
命令解决。它从数据库中删除当前的校验和,并且在下一次更新时,已经部署的更改集将重新计算其校验和,并且将部署尚未部署的更改集。
有关详细信息,请查看 Liquibase commands。
我是 Liquibase 的新手 运行d...
今天我使用 --liquibase 格式化 sql 编写了一个 Liquibase 变更集。
我创建了两个表,其中第二个表对外键依赖于第一个表。
我的回滚策略是(错误地)drop table1;删除表 2。当我 运行 更新并测试回滚时,由于外键约束,它失败了。然而,当我纠正我的错误并试图重新运行它时,它失败了,因为校验和不匹配。
我知道显而易见的答案是创建更多原子变更集,但是...
Liquibase 是否支持一种无需实际 运行 即可测试此类事物的方法,这样我就可以避免编辑回滚时校验和的问题?
失败:是否有校验和问题的变通方法可以让我在 运行 更新后编辑我的文件? (ctrl+z?)
对你的问题的简短回答是,没有 Liquibase 没有这样的东西。
Liquibase 是一个很棒的工具包,但它没有太多花里胡哨的东西,也没有太多关于如何使用它或你的工作流程应该做什么的 'opinion'是。对于您的情况,我建议解决该问题的一种方法是删除数据库,然后 re-create 从更改日志中删除它。如果您已经在多个地方部署了变更日志,那可能是不可能的,如果您不准备这样做,那可能是个问题。
有一个选项可以在变更集上指定 validChecksums
属性,因此您可以使用它,但一般来说,如果您使用它,您的变更日志就会变得更加复杂。
如果您想了解更多 full-featured 并且能够在部署之前预测变化的东西,请查看我公司的产品 Datical DB。它以 liquibase 为核心,但增加了更多(并相应定价)。
Liquibase 提供 updateTestingRollback
基本更新数据库的命令,然后测试其回滚,如果成功,再次应用更改。
您的无效校验和问题可以通过 clearCheckSums
命令解决。它从数据库中删除当前的校验和,并且在下一次更新时,已经部署的更改集将重新计算其校验和,并且将部署尚未部署的更改集。
有关详细信息,请查看 Liquibase commands。