Mic*_*ael 7 sql transactions liquibase
我们有几个数据模式,我们调查迁移到Liquibase.(其中一个数据模式已经迁移到Liquibase).
对我们来说重要的问题是Liquibase是否支持干运行:
(类似于此SQL Server查询干运行但与Liquibase相关的问题)
答案后添加
我阅读了与updateSQL相关的文档,并没有回答"干运行"的要求.它只是生成SQL(在命令行中,在Ant任务和Maven插件中).我会澄清我的问题:
Liquibase是否支持对交易的控制?
我想在执行Liquibase changelog之前打开事务,并在更改日志执行后回滚事务.当然,我需要验证执行的结果.
可能吗?
添加
如果没有对事务(或干运行)的控制,我们就无法将所有模式迁移到Liquibase.
请帮忙.
很不幸的是,不行.
默认情况下,Liquibase提交执行变更集的所有语句的事务.我假设您考虑的迁移路径通常涉及多个变更集.
您可以修改交易行为的唯一方法是runInTransaction对属性<changeset>标记,作为记录在这里.通过将其设置为false,您可以有效地禁用事务管理,即它可以启用自动提交模式,如ChangeSet.java中所示.
我认为这个功能可能是Liquibase的一个有价值的补充,所以我打开了一个功能请求:CORE-1790.
小智 7
您可以尝试"即updateSQL"模式时,它会连接数据库(检查您访问权限),获取数据库锁定,生成/打印SQL语句被应用(基于DB状态,并且您当前liquibase变更集)也将打印chageset ID的缺失处于db的当前状态并释放db lock.