4

Мы используем инструмент 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.

+0

Я подал ошибку. – Pawel

+0

Ссылка? Я не был уверен, считалось ли это неправильным поведением или нет. – jslatts

+0

К сожалению, база данных ошибок не является общедоступной. Я считаю, что это ошибка - ваш сценарий ясно показывает, что существует значение для различения ошибок и ошибок без ошибок. – Pawel

ответ

1

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

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

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

Это, как представляется, снова существует в v6.0.21010.0. –

+1

@MikeCole спасибо за отчетность - создал рабочий элемент для этого: https://entityframework.codeplex.com/workitem/1859 – Pawel

+1

@MikeCole - исправлено только для EF6 (https://entityframework.codeplex.com/ SourceControl/ревизия/5ed07059bcae71b39dce14d0b3ee6ba62de9a188). Обратите внимание, что это не было сделано в EF6.1-альфа, который был отправлен ранее сегодня, но должен быть включен в следующие выпуски. – Pawel

1

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