Запуск обновления базы данных из Team City
Я создал новое приложение, используя миграцию базы данных Entity Framework 4.3. Миграции отлично работают с консоли диспетчера пакетов с помощью команды "update-database".
Теперь я хочу запускать миграцию базы данных каждый раз, когда приложение создается с помощью Team City, похоже, мне нужно создать сценарий powershell, который будет делать это.
Может кто-нибудь указать мне некоторые инструкции о том, как заставить команды менеджера пакетов запускаться из командной строки или powershell? Все, что я могу найти, это инструкции о том, как сделать это через консоль диспетчера пакетов, которую я не знаю, как запустить из этапа сборки Team City.
2 ответа
migrate.exe - это то, что я искал, он находится в "packages\EntityFramework.4.3.1\tools".
Добавьте новый шаг сборки в Team City, используя:
Тип бегуна: командная строка
Исполняемый файл команды: packages\EntityFramework.4.3.1\tools\migrate.exe
Параметры команды: MyApplicationName /StartupDirectory:MyApplicationName\bin
Установите Entity Framework nuget в репозиторий и используйте прилагаемый файл migrate.exe в пакетах \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.