У меня есть приложение, ориентированное на данные, с SQL Server. Среды, в которых он будет развернут, не находятся под нашим контролем, и там нет администраторов баз данных (все это малые предприятия), поэтому нам нужно, чтобы процесс распространения каждого обновления приложения/базы данных был как можно более автоматическим.
Помимо обычных изменений между версиями приложения (иногда непредсказуемых), мы уже знаем, что нам нужно будет распространять некоторые новые начальные данные с каждой версией. Иногда эти исходные данные будут связаны с другими данными в нашей системе. Например: возможно, нам нужно будет вставить 2 новые строки некоторых основных данных в процессе обновления v2-v3 и еще 5 строк во время процесса обновления v5-v6.
EF
Мы проверили Entity Framework Db Migrations (доступно для существующих баз данных без Code-First начиная с выпуска 4.3.1), которые представляют традиционные последовательные сценарии более автоматическим и контролируемым способом (например, Fluent Migrations).
SSDT
С другой стороны, придерживаясь другой философии, мы проверили SSDT и его dacpacs, моментальные снимки и сценарии до и после развертывания.
Вопросы:
Какая из этих технологий/философий больше подходит для описанного случая?
Любая другая технология/философия, которую можно было бы использовать?
Любой другой совет?
Заранее спасибо.