Запуск update-database от Team City

Я создал новое приложение, используя миграции базы данных Entity Framework 4.3. Миграции отлично работают из консоли диспетчера пакетов с помощью команды «update-database».

Теперь я хочу запускать миграции базы данных каждый раз, когда приложение создается с использованием Team City, похоже, мне нужно создать сценарий PowerShell, который будет это делать.

Может ли кто-нибудь указать мне на некоторые инструкции о том, как запустить команды диспетчера пакетов из командной строки или PowerShell? Все, что я могу найти, - это инструкции о том, как это сделать с помощью консоли диспетчера пакетов, которую я не знаю, как запустить ее на этапе сборки Team City.


person moonpatrol    schedule 26.03.2012    source источник
comment
EF 4.3 содержит инструмент командной строки migrate.exe, который предлагает те же функции, что и Update-Database.   -  person Ladislav Mrnka    schedule 26.03.2012


Ответы (2)


migrate.exe - это то, что я искал, он находится в "packages \ EntityFramework.4.3.1 \ tools".

Добавьте новый этап сборки в Team City, используя:

Тип бегуна: командная строка

Исполняемый файл команды: packages \ EntityFramework.4.3.1 \ tools \ migrate.exe

Параметры команды: MyApplicationName / StartupDirectory: MyApplicationName \ bin

person moonpatrol    schedule 28.03.2012

Установите NuGet Entity Framework в репозиторий и используйте сопровождающий файл migrate.exe в папке packages \ EntityFramework.5.0.0 \ tools \ или эквивалентном.

Затем запустите пакетный скрипт, подобный этому:

SET AssemblyName=MyMvc4App
SET StartUpDirectory=MyMvc4App\bin\
SET ConnectionString=Server=tcp:XXXX.database.windows.net,1433;Database=XXXX;User ID=XXXX;Password=XXXX;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;MultipleActiveResultSets=True
SET ConnectionStringProvider=System.Data.SqlClient
SET ConfigFilePath=%CD%\MyMvc4App\web.config
SET MigrateExe=packages\EntityFramework.5.0.0\tools\migrate.exe

%MigrateExe% %AssemblyName%.dll /startUpDirectory:%StartUpDirectory% /startUpConfigurationFile:"%ConfigFilePath%" /connectionProviderName:"%ConnectionStringProvider%" /connectionString:"%ConnectionString%" /verbose
pause

Я ответил на аналогичный вопрос, и там я объясняю, почему мне еще не удалось заставить его работать без указания файла web / app.config. .

person angularsen    schedule 03.01.2013