【问题标题】:Running update-database from Team City从 Team City 运行更新数据库
【发布时间】:2012-04-09 17:28:13
【问题描述】:

我使用 Entity Framework 4.3 数据库迁移创建了一个新应用程序。使用“update-database”命令,在包管理器控制台中迁移效果很好。

现在我想在每次使用 Team City 构建应用程序时运行数据库迁移,看来我需要创建一个可执行此操作的 powershell 脚本。

谁能告诉我一些关于如何让包管理器命令从命令行或 powershell 运行的说明?我只能找到有关如何通过包管理器控制台执行此操作的说明,我不知道如何从 Team City 构建步骤运行。

【问题讨论】:

  • EF 4.3 包含名为migrate.exe 的命令行工具,它提供与Update-Database 相同的功能。

标签: asp.net teamcity entity-framework-4.3


【解决方案1】:

migrate.exe 是我要找的,它位于“packages\EntityFramework.4.3.1\tools”中。

在 Team City 中添加一个新的构建步骤,使用:

运行器类型:命令行

命令可执行文件:packages\EntityFramework.4.3.1\tools\migrate.exe

命令参数:MyApplicationName /StartupDirectory:MyApplicationName\bin

【讨论】:

    【解决方案2】:

    将 Entity Framework nuget 安装到 repo 并使用 packages\EntityFramework.5.0.0\tools\ 下随附的 migrate.exe 或等效项。

    然后像这样运行一个批处理脚本:

    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
    

    我回答了similar question,并在此解释了为什么我在不指定 web/app.config 文件的情况下还没有让它工作。

    【讨论】:

      猜你喜欢
      • 2011-05-05
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      相关资源
      最近更新 更多