如何在从源代码管理发布时为Windows Azure启用代码优先实体框架迁移

本文关键字:代码 启用 Azure 迁移 框架 实体 Windows 源代码 管理 布时 | 更新日期: 2023-09-27 17:58:04

我有一个项目,我将通过源代码管理自动发布到Azure。我已将azure配置为具有实体框架上下文的正确连接字符串。我需要针对与网站相关的azure数据库自动运行迁移。

我知道发布对话框中有一个选项,但我需要手动将任何魔术添加到web.config中,以告诉azure应用迁移。让azure从源代码管理运行迁移需要什么?如果这不可能,还有其他方法吗?

我正在使用EF 6。

如何在从源代码管理发布时为Windows Azure启用代码优先实体框架迁移

您需要将上下文配置为在运行时迁移。每个运行的进程只需要这样做一次,所以上下文上的静态构造函数是放置的一个不错的地方

static MyContext()
{
    Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Data.Migrations.Configuration>());
}

还要确保在Azure中配置了连接字符串。

如果您正在使用自动迁移(这在部署的站点中是个坏主意),那么您还需要那些启用的

要运行这样的迁移脚本,我建议使用Azure WebJobs:http://www.hanselman.com/blog/IntroducingWindowsAzureWebJobs.aspx

Azure WebJobs是一个用于运行.bat、.exe等脚本的调度器。它基本上在UNIX机器上像cron一样工作,但提供了直观且易于使用的UI。所以对于@Romoku的情况,他可以创建控制台应用程序。这使用了EF 6.0和.Net提供的所有功能来安排他的迁移和跟踪操作日志。它在网站运行的同一台机器和环境上工作。