Мы используем инструмент migrate.exe для платформы Entity Framework 4.3.1 для запуска миграции базы данных с нашего сервера сборки TeamCity в рамках нашей постоянной интеграции и автоматизации развертывания. Один из этих вопросов, мы сталкиваясь, что migrate.exe инструмент не выделяет ненулевой кода выхода, когда он не:Entity Framework 4.3.1 Megrate.exe ненулевой код выхода
C:\<path>\packages\EntityFramework.4.3.1\tools>migrate.exe AppContext /startupdirectory:C:\<path>\bin\Debug /startupconfigurationfile:C:\<path>\Web.config /verbose
<Bunch of successful migrations>
Applying explicit migration: 201202212004585_UpdateTable
VERBOSE: ALTER TABLE [TableA] DROP CONSTRAINT [FK_TableA_TableB]
System.Data.Entity.Migrations.Design.ToolingException: 'FK_TableA_TableB' is not a constraint.
Could not drop constraint. See previous errors.
at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)
at System.Data.Entity.Migrations.Design.ToolingFacade.Update(String targetMig
ration, Boolean force)
at System.Data.Entity.Migrations.Console.Program.Run()
at System.Data.Entity.Migrations.Console.Program.Main(String[] args)
ERROR: 'FK_TableA_TableB' is not a constraint.
Could not drop constraint. See previous errors.
C:\<path>\packages\EntityFramework.4.3.1\tools>echo %errorlevel%
0
Это вызывает команды Город пройти сборку от как «успешного», когда миграция завершается с ошибкой, и она должна быть неудачной.
Наш временный подход заключается в том, чтобы grep построить журнал для «ОШИБКИ:» и не выполнить сборку, когда это произойдет, но это решение является грубым, и мы не можем сказать, сбой EF или какой-либо другой процесс с аналогичной записью журнала.
Любые предложения по улучшению работы? Любой способ заставить migrate.exe вести себя или способ заставить Team City понять, что ошибка связана с migrate.exe.
Я подал ошибку. – Pawel
Ссылка? Я не был уверен, считалось ли это неправильным поведением или нет. – jslatts
К сожалению, база данных ошибок не является общедоступной. Я считаю, что это ошибка - ваш сценарий ясно показывает, что существует значение для различения ошибок и ошибок без ошибок. – Pawel