Azure的CodeFirst数据库迁移

时间:2015-10-15 03:17:43

标签: entity-framework azure ef-code-first azure-sql-database ef-migrations

到目前为止,我还没有成功将自动迁移工作从Visual Studio Online Code Repo配置为自动部署到Azure。

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

我现在的问题是,数据库在本地工作副本和Azure数据库之间失去了同步,因此当代码成功部署时,应用程序不再起作用,因为数据库未更新以匹配新类。

我尝试了几种方法:

  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站点上执行数据库更新。 (包括检查选项框以执行迁移)

  5. 任何人都可以使用它吗?

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

1 个答案:

答案 0 :(得分:1)

我发现了我认为的根本原因(Code Wise,实际根本原因是我是一个白痴)。我已经在web.config中配置了LocalDB客户端,迁移都是针对该数据库进行的。注释掉DB并允许包管理器中的Update-Database Command针对AzureDB运行,正确地更新了Azure上的数据库。

我还不完全确定为什么迁移不起作用,但我怀疑它是由于Web.Config文件我部署了默认设置数据库设置为Azure不知道的(LocalDB)。

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