2013-02-15 1 views
5

Я создал проект ASP.NET MVC 4 в Visual Studio 2010 с использованием Entity Framework 5 с включенными разрешениями. У меня есть несколько веб-конфигурационных файлов для разных сред (Debug, Staging, Release), которые будут определять разные подключения к базе данных в зависимости от среды. Как обрабатывать миграции с помощью команды Update-Database из консоли диспетчера пакетов с несколькими конфигурационными файлами? Каждый раз, когда я запускаю эту команду, по умолчанию используется основная строка соединения Web.config. Спасибо за любую помощь заранее.Миграции Entity Framework с несколькими преобразованиями веб-конфигурации

+0

как вы развертываете свой код в различных средах? то есть. используя Visual Studio? CI Дженкинс? –

+0

В настоящее время я использую параметр публикации в Visual Studio. – bbango

+0

Я думал, что есть возможность обновить базу данных –

ответ

6

Чтобы попытаться сохранить все как можно более простым способом, я работал над запуском миграции на своих удаленных серверах промежуточной постановки и производства, чтобы запустить следующую команду с консоли пакета (источник данных и пользователь/пропуск будут меняться в зависимости от того, какой сервер я хотел запустить миграцию против):

Update-Database -Verbose -ConnectionString "Data Source=ServerName;Initial Catalog=db;User Id=user;Password=pass;" -ConnectionProviderName "System.Data.SqlClient" 

Это работает для меня до сих пор в случае, если кто-то смотрит. Спасибо всем за комментарии.

0

Чтобы перейти на другую среду, вы должны использовать Web config transform tool, я не думаю, что это ответственность за миграцию Entity Framework.

+1

Преобразователи работают исправно. Я не понимаю, как обрабатывать миграции и обновлять базу данных в разных средах. – bbango

0

http://msdn.microsoft.com/en-us/data/jj618307.aspx

EF Code First Миграции поставляется с инструментом Migrate, который позволяет запустить «обновление» команд с помощью командной строки.

Я не совсем уверен, как вы настроились, но мы сделали что-то подобное, где мы разворачиваем код через наш CI-сервер (Jenkins). Затем я добавил шаг развертывания после запуска базы данных обновлений через командную строку.

Что хорошего в этом, вы также можете указать строки подключения.

Опять же, все зависит от того, как это вписывается в ваш процесс, вы даже можете использовать Nant для выполнения этого для вас.

Надеюсь, это поможет.

+0

Этот инструмент migrate.exe может быть тем, что я ищу. Вопрос, который у меня для вас связан с процессом развертывания, заключается в том, как вы вернетесь назад, если сбой миграции, или что-то неожиданно? – bbango

+0

Мы откатались бы традиционным способом. DBMigrations позволяет настроить таргетинг на сценарий миграции (если вам нужно откат), но я бы не стал полагаться на это для отката ваших производственных серверов. Вы также можете генерировать сценарий из миграций –

Смежные вопросы