我们正在使用Liquibase在Sybase ASE RDBMS上管理数据库架构。如Liquibase文档所述,更改集应始终在单个事务内执行,否则如果在运行包含多个语句的changeSet的过程中发生错误,则Liquibase databasechangelog表将处于无效状态(请参阅changeset tag.。
为此,我们使用ddl in tran
选项运行Sybase ASE,根据ASE文档,该选项允许将多个DDL语句包装在单个用户定义的事务中。但是,后来我们发现Liquibase总是 在ASE上恢复为自动提交(参见方法liquibase.database.core.SybaseDatabase.supportsDDLInTransaction()
,该方法始终返回false)。
是否有一种方法可以覆盖此方法(可能是在liquibase.database.core.SybaseDatabase
派生的类中以某种方式向Liquibase注册),以便它返回true,从而使Liquibase不能使用自动提交?