gpt4 book ai didi

liquibase - liquibase 变更集的事务性回滚

转载 作者:行者123 更新时间:2023-12-05 01:04:49 34 4
gpt4 key购买 nike

我目前正在将 liquibase 与基于 SQL 的变更集一起使用,其中大多数都包含 INSERT 语句。根据文档,这种类型的更新操作不会产生(通过工具)自动回滚语句。

我的问题是(我可能遗漏了一些东西),因为我们可以声明某个变更集可以在数据库事务的上下文中运行,如果在应用变更集期间发生错误,该工具(liquibase)是否可以仅发出事务回滚对于这个特定的变更集?

我的情况是,目前所有这些脚本都是开发过程的一部分,这些脚本尚未最终确定,这意味着有人更改了内容,我们从头开始回复它们。如果在 2000 行插入脚本中 SQL 中存在错误,我希望该工具自动回滚当前事务而不提交数据库中的更改。

非常感谢您的任何提示

最佳答案

在更新过程中,liquibase 在一个事务中运行每个 changeSet,如果有任何错误,则将其回滚。因此,如果您有一个 2000 行的插入,但在中途出现错误,它将按预期失败并自动回滚。

没有自动生成的是 SQL 在插入后“回滚”(在这种情况下是删除)插入。如果您在 changeSet 中指定一个块,那么在更新成功执行并提交后,您可以稍后运行“liquibase rollback v2.3”,它将撤消自 v2.3 标签以来的更改。它不能依赖数据库回滚功能,因为它已经提交。

这可能有点令人困惑,因为在这种情况下回滚与事务上下文中术语“回滚”的正常数据库使用不同。

关于liquibase - liquibase 变更集的事务性回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22477794/

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