Я был немного удивлен, обнаружив, что операторы DDL (alter table
, create index
и т.д.) неявно фиксируют текущую транзакцию в MySQL. Исходя из MS SQL Server, возможность изменения базы данных в транзакции локально (которая была отброшена назад) была важной частью моего рабочего процесса. Для непрерывной интеграции откат использовался, если миграция была икрой по какой-либо причине, так что по крайней мере мы не оставили базу данных в состоянии с половиной миграции.
Как люди решают эти две проблемы при использовании MySQL с миграциями и непрерывной интеграцией?