Entity Framework 4.3.1 Migrate.exe ненулевой код выхода

Мы используем инструмент migrate.exe Entity Framework 4.3.1 для выполнения миграции базы данных с нашего сервера сборки TeamCity в рамках нашей непрерывной интеграции и автоматизации развертывания. Одна из этих проблем, с которыми мы столкнулись, заключается в том, что инструмент migrate.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

Это приводит к тому, что Team City выдает сборку за «успешную», когда миграция завершается с ошибкой, а она должна быть неудачной.

Наш временный обходной путь заключается в поиске в журнале сборки «ОШИБКИ:» и сбое сборки, когда это происходит, но это решение является грубым, и мы не можем определить, произошел ли сбой EF или какой-либо другой процесс с аналогичной записью в журнале.

Любые предложения по улучшению работы? Либо способ заставить программу migrate.exe работать, либо способ заставить Team City понять, что сбой связан именно с migrate.exe.


person jslatts    schedule 23.04.2012    source источник
comment
Ссылка на сайт? Я не был уверен, считается ли это неправильным поведением или нет.   -  person jslatts    schedule 25.04.2012
comment
К сожалению, база данных ошибок не является общедоступной. Я считаю, что это ошибка - ваш сценарий ясно показывает, что есть ценность в различении ошибок и ошибок.   -  person Pawel    schedule 25.04.2012
comment
Похоже, что это снова существует в v6.0.21010.0.   -  person Mike Cole    schedule 23.11.2013


Ответы (2)


http://blogs.msdn.com/b/adonet/archive/2012/05/15/ef5-release-candidate-available-on-nuget.aspx

Этот выпуск также включает исправления следующих ошибок, обнаруженных в бета-версии 2:

  • ...
  • Миграции: Migrate.exe не устанавливает код ошибки после сбоя
person Pawel    schedule 21.05.2012

Эта ошибка была исправлена ​​в EF 5 RC: — Использование логина со схемой по умолчанию, отличной от «dbo», для пользователя приводит к сбоям во время выполнения.

person ITmeze    schedule 23.05.2012