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