实体框架在Test Server上执行迁移

时间:2012-08-23 20:23:34

标签: entity-framework ef-migrations

我需要在部署时更新测试服务器数据库,但我找不到办法。 我们没有使用自动迁移,因此我们手动完成。

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

我正在使用NuGet调用进行本地开发:更新数据库 我知道我们可以生成脚本文件,我是否必须手动执行?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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(它来自ef 4.3我认为在获取nuget包时)并在后期构建évent中运行...