【发布时间】:2015-03-27 15:12:54
【问题描述】:
我有点惊讶地发现 DDL 语句(alter table、create index 等)隐式提交 MySQL 中的当前事务。来自 MS SQL Server,在本地事务中进行数据库更改(然后回滚)的能力是我工作流程的重要组成部分。对于持续集成,如果迁移因任何原因而中断,则使用回滚,这样至少我们不会使数据库处于半迁移状态。
在使用 MySQL 进行迁移和持续集成时,人们如何解决这两个问题?
【问题讨论】:
-
交叉张贴在 DBA 上:dba.stackexchange.com/q/90794/18273
-
欢迎来到美妙的 MySQL 世界 :)
-
你确定在 SQL Server DDL 命令中没有提交事务吗?因为在 oracle DDL 命令中也提交事务。
-
WWWOOOOOOOOOOOWWWW。如果这是真的,Oracle/MySQL 很糟糕。逆天。是的,我们确信 DDL 语句参与 Microsoft SQL Server 中的当前事务,并且不会像 Oracle 那样在每个语句之后自动提交事务(哇)。您如何看待 EntityFramework 能够对代码优先迁移进行建模,这些迁移可以在事务中应用和回滚,同时在其中包含许多 DDL 语句。这使得 MySQL 从根本上与 EntityFramework 之类的东西不兼容。为什么他们还要费心去整合它?
标签: mysql transactions continuous-integration rollback ddl