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