continuous-integration - Entity Framework 4.3.1 Migrate.exe 非零退出代码

标签 continuous-integration teamcity entity-framework-4.3

我们正在使用 Entity Framework 4.3.1 的 migrate.exe 工具从我们的 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 在迁移失败并且应该失败时将构建传递为“成功”。

我们的临时解决方法是 grep 生成日志中的“错误:”并在发生这种情况时使生成失败,但这个解决方案很粗糙,我们无法判断 EF 是否失败或其他具有类似日志条目的进程。

有什么更好的工作建议吗?无论是使 migrate.exe 行为的方法还是让 Team City 了解故障特定于 migrate.exe 的方法。

最佳答案

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

此版本还包括对 Beta 2 中发现的以下错误的修复:

  • ...
  • 迁移:Migrate.exe 失败后未设置错误代码
  • 关于continuous-integration - Entity Framework 4.3.1 Migrate.exe 非零退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10282576/

    相关文章:

    PowerShell 希望在 TeamCity 中进行提示

    c# - 如何从自定义 SQL "AdminUsers"表中为管理员保护 MVC4 区域

    java - 如何自动化 IntelliJ IDEA 11 项目的 Java 构建过程?

    node.js - 在 Docker 容器中预缓存 node_modules

    teamcity - 是否可以防止跨某些配置的并发构建?

    asp.net-mvc - 为什么 Nant 不与 TeamCity 合作?

    c# - EF4 : Why does proxy creation have to be enabled when lazy loading is enabled?

    ef-code-first - 我在人际关系上做错了什么?两个依赖实体引用的公共(public)实体

    bash - 是否可以在后台执行多个命令,但等待所有结果并在命令失败时使脚本失败

    Jenkins GitHub Webhook 不触发构建