Azure 的 CodeFirst 数据库迁移

CodeFirst DB Migrations with Azure

到目前为止,我未能成功从配置为自动部署到 Azure 的 Visual Studio 在线代码库进行自动迁移。

这里有一个类似的问题没有得到解答: EntityFramework Automatic Migrations with Azure Git Deployment

我现在的问题是,本地工作副本和 Azure DB 之间的数据库不同步,所以当代码部署成功时,应用程序不再运行,因为数据库没有更新以匹配新 类。

我试过几种方法:

  1. Webapi.config 已更新以包含迁移器。

    var migrator = new DbMigrator(new Configuration());
    migrator.Update();
    
  2. Web.Config 更新为包括迁移到最新版本

    <add key="MigrateDatabaseToLatestVersion" value="true"/>
    
  3. 迁移配置更新为启用自动

    AutomaticMigrationsEnabled = true;
    
  4. 通过发布管理器直接从 Visual Studio 发布 - 这仍然不会在 Azure 站点上执行数据库更新。 (包括选中执行迁移的选项框)

有人能让这个工作吗?

编辑:作为 post 部署解决方法,我也尝试过这个,但没有成功,但也没有成功。 http://robertgreiner.com/2012/05/using-entity-framework-database-migrations-to-update-a-remote-database/

我发现了我认为的根本原因(代码明智,实际根本原因是我是个白痴)。我在 web.config 中配置了 LocalDB 客户端,迁移都是针对该数据库进行的。注释掉该数据库并允许包管理器中的更新数据库命令 运行 针对 AzureDB 正确更新了 Azure 上的数据库。

我仍然不完全确定为什么迁移不起作用,但我怀疑这是由于 Web.Config 我正在部署的文件将默认数据库设置为 Azure 没有设置的内容了解 (LocalDB)。

所以这至少是一个解决方法,同时我修复了 Web.Config 设置以使用正确的数据库部署到 Azure。