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