Традиционно я всегда писал свои SQL-скрипты вручную, чтобы они были красивыми и чистыми (я не фанат сгенерированных), и от выпуска к выпуску я предоставляю новый сценарий установки и сценарий миграции из предыдущей версии, который создает новые таблицы, изменяет существующие таблицы и т. д. Все это довольно стандартно.
У меня действительно не было много времени, чтобы сначала поиграть с кодом EF 4, но я очень заинтересован в его использовании, если он действительно жизнеспособн в производственной среде.
Скажем, у вас есть подход с кодом, при котором база данных будет автоматически создана, если она не существует. Что произойдет, если вы выпустите новую версию программного обеспечения с изменениями схемы/модели. Достаточно ли умен EF, чтобы обновить схему базы данных, чтобы она соответствовала обновленной модели EF?
Сценарий
- Клиент устанавливает веб-сайт asp.net MVC на свой сервер. При первом запуске создается новая база данных
- Клиент некоторое время использует веб-сайт, и база данных заполняется некоторыми данными.
- Тем временем выпущена новая версия веб-сайта, и модель EF изменилась.
- Клиент загружает новую версию, развертывает веб-сайт и указывает на существующую базу данных.
Полезен ли код сначала только для начального развертывания, или он достаточно умен, чтобы обновить существующую версию базы данных до такой версии?