liquibase变更集的事务性回滚

javapapo

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

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

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

非常感谢任何提示

内森·沃克斯兰

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Liquibase不会使用MySQL回滚失败的变更集

来自分类Dev

Django w / MySQL非事务性更改表无法回滚

来自分类Dev

Capybara Selenium Webdriver事务性回滚解决方案

来自分类Dev

Grails dbm-update和change_log变更集:是否具有事务性?

来自分类Dev

数据库架构变更| MySQL事务性DDL语句

来自分类Dev

了解tfs中的回滚整个变更集吗?

来自分类Dev

如何回滚其他上下文的变更集?

来自分类Dev

在TFS 2010中回滚变更集的问题

来自分类Dev

JTA事务的回滚

来自分类Dev

HibernateTransactionManager回滚事务

来自分类Dev

紧急回滚后如何将我的回滚变更集和修订签入TFS

来自分类Dev

标准C ++事务性内存状态

来自分类Dev

CrudRepository .delete()方法是事务性的吗?

来自分类Dev

递归ROWNUM与事务性方法的使用

来自分类Dev

msmq队列必须是事务性的吗?

来自分类Dev

事务性死信队列已满

来自分类Dev

grails如何禁用方法的事务性

来自分类Dev

Grails服务不是事务性的吗?

来自分类Dev

测试IBM Integration Bus的事务性

来自分类Dev

跨表分区的事务性插入

来自分类Dev

Grails的事务性后台作业

来自分类Dev

递归ROWNUM与事务性方法的使用

来自分类Dev

事务性全系统升级

来自分类Dev

OpenSessionInView与事务性?(春季/休眠/ JPA)

来自分类Dev

使用 mysqli 的事务性语句

来自分类Dev

Liquibase跳过生成的变更集

来自分类Dev

每次Liquibase运行变更集

来自分类Dev

Java持久性中的事务性和非事务性缓存

来自分类Dev

Liquibase回滚从不执行