Комментарии 7
Использовали custom решение на базе T-SQL скриптов с регистрацией накатки в базе.
Надежно, но не mainstream — у новых разработчиков сложности с пониманием и сложности с грамотным написанием T-SQL.
Перешли на Fluent Migrator.
У Fluent Migrator есть свойство — если в одной миграции несколько шагов и один из шагов вызывает ошибку на сервере баз данных, Fluent лихо продолжает выполнять шаги и оценивает результат выполнения по последнему шагу (как успех). Т.е. сложные миграции желательно дробить.
Надежно, но не mainstream — у новых разработчиков сложности с пониманием и сложности с грамотным написанием T-SQL.
Перешли на Fluent Migrator.
У Fluent Migrator есть свойство — если в одной миграции несколько шагов и один из шагов вызывает ошибку на сервере баз данных, Fluent лихо продолжает выполнять шаги и оценивает результат выполнения по последнему шагу (как успех). Т.е. сложные миграции желательно дробить.
Почему не стали рассматривать liquibase?(https://www.liquibase.org/)
EF core
Не понял. Вы же сами пишете что в EF Core теперь не хранится снимок БД. А в других инструментах последовательность миграций может любой? Что-то сомневаюсь.
А для DbUp вы вообще в плюсы вписали «Конфликты также решаются с помощью SQL»
В миграции можно написать выполнение любого необходимо sql-query. В plain-text, без зависимости от моделей.
Разрешение конфликтов осталось на том же уровне. Необходимо выстраивать последовательность миграций и обновлять снимки БД
Не понял. Вы же сами пишете что в EF Core теперь не хранится снимок БД. А в других инструментах последовательность миграций может любой? Что-то сомневаюсь.
А для DbUp вы вообще в плюсы вписали «Конфликты также решаются с помощью SQL»
Зависимость от моделей, на основе которых сгенерированы миграции
В миграции можно написать выполнение любого необходимо sql-query. В plain-text, без зависимости от моделей.
В своё время ушли на Fluent с EF потому, что многое делает по умолчанию и не позволяет «допилить». Например нельзя задать имя DEFAULT CONSTRAINT для колонки. А иногда так уж складывается, что надо. Про отсутствии автогенерации не особо жалели. Ручками оно как-то надёжнее.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Сравнение и выбор систем миграции данных