Как не допустить, чтобы Liquibase всегда возвращался к автоматической фиксации при работе на Sybase ASE - PullRequest
0 голосов
/ 11 октября 2018

Мы используем Liquibase для управления нашей схемой базы данных в СУБД Sybase ASE.Как говорится в документации Liquibase, наборы изменений всегда должны выполняться внутри одной транзакции, в противном случае , если ошибка возникает на полпути при запуске набора изменений, содержащего несколько операторов, таблица базы данных Liquibasechangelog будет оставлена ​​в недопустимом состоянии (см. тег changeset. .

. Для этого мы запускаем Sybase ASE с параметром ddl in tran, который, согласно документации ASE, позволяет заключать несколько операторов DDL.внутри одной пользовательской транзакции. Однако позже мы обнаружили, что Liquibase всегда возвращается к автоматической фиксации на ASE (см. метод liquibase.database.core.SybaseDatabase.supportsDDLInTransaction(), который всегда возвращает false).

Есть ли способ переопределить этот метод (возможно, в классе, производном от liquibase.database.core.SybaseDatabase, который каким-то образом зарегистрирован в Liquibase), чтобы он возвращал true и, таким образом, удерживал Liquibase от использования автоматической фиксации?

...