1

部署时需要更新测试服务器数据库,但我没有找到方法。我们没有使用自动迁移,所以我们手动进行。

我可以直接在测试服务器上执行吗?也许是一个控制台程序?

我正在使用 NuGet 调用进行本地开发:Update-Database 我知道我们可以生成脚本文件,我必须手动执行吗?

4

2 回答 2

2

您可以使用 MigrateDatabaseToLatestVersion 数据库初始化程序通过代码或配置执行迁移。在应用程序启动时,您将在代码中执行以下操作:

Database.SetInitializer<MyContext>(
    new MigrateDatabaseToLatestVersion<MyContext, MyMigrationConfig>()
);

或者在您应用的 .config 文件中:

<entityFramework>
    <contexts>
      <context type="MyContext">
        <databaseInitializer
          type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[
              [MyContext], [MyMigrationConfig]
         ], EntityFramework" />
      </context>
    </contexts>
</entityFramework>
于 2012-08-25T06:28:59.060 回答
0

如果您使用 Visual Studio,则可以使用发布功能来执行脚本。在这里查看更多详细信息:

http://learn.iis.net/page.aspx/1081/building-a-web-deploy-package-from-visual-studio-2010/

如果您使用团队基金会服务器,您甚至可以将其自动化:

http://weblogs.asp.net/jdanforth/archive/2010/04/24/package-and-publish-web-sites-with-tfs-2010-build-server.aspx

另外要生成脚本,也许您可​​以使用 migrate.exe (我认为在获取 nuget 包时它带有 ef 4.3)并在构建后事件中运行它......

于 2012-08-24T23:41:14.157 回答