Во время разработки мне нравится идея фреймворков, таких как Entity Framework 4.3 Migrations (хотя она нужна мне для работы со сценариями sql, а не с классами Migration), поддерживающей актуальность всех баз данных разработчиков. Кто-то делает обновление, чтобы получить последний источник, он пытается запустить приложение и выдает ошибку, что ему нужно обновить свою базу данных до последней миграции (или если миграция произойдет автоматически). Файлы миграции имеют временную метку, поэтому разработчикам не нужно беспокоиться о том, чтобы называть два файла одинаковыми, или о последовательности, в которой должны выполняться файлы.
Когда я собираюсь создать пакет развертывания WebDeploy, я хочу, чтобы пакет содержал сценарии, необходимые для перемещения производственной базы данных до последней версии БД. Так или иначе, MSBuild или WebDeploy должны принять решение о том, какие сценарии должны быть упакованы. Для развертывания я не хочу, чтобы приложение пыталось обновить себя так, как предлагает EF. Я хочу передать пакет ИТ-отделу или выполнить автоматическое развертывание через сервер развертывания.
Некоторые из моих вопросов:
Может ли EF 4.3 работать со сценариями sql вместо классов DBMigration для моих нужд разработки (я уже использую его для своего ORM, поэтому было бы неплохо, если бы это было возможно)?
Понимает ли MSBuild или WebDeploy концепцию миграции баз данных (например, распознает ли она таблицу EH. 4.3igrationHistory) или я должен предоставить ей только те сценарии, которые ему нужны для запуска, которые приведут мой продукт? дб до последней миграции? Решать, какие сценарии следует упаковать вручную, я не хочу, поэтому есть ли расширение MS WebDeploy, которое понимает миграции?
Обоснованы ли мои опасения и идеи? Я просто исследую этот материал, поэтому я не знаю.