到目前为止,我还没有成功将自动迁移工作从Visual Studio Online Code Repo配置为自动部署到Azure。
这里有一个类似的问题没有答案: EntityFramework Automatic Migrations with Azure Git Deployment
我现在的问题是,数据库在本地工作副本和Azure数据库之间失去了同步,因此当代码成功部署时,应用程序不再起作用,因为数据库未更新以匹配新类。
我尝试了几种方法:
更新了Webapi.config以包含迁移器。
var migrator = new DbMigrator(new Configuration());
migrator.Update();
Web.Config已更新至包含迁移至最新版本
<add key="MigrateDatabaseToLatestVersion" value="true"/>
迁移配置已更新为启用自动
AutomaticMigrationsEnabled = true;
通过发布管理器直接从Visual Studio发布 - 这仍然不会在Azure站点上执行数据库更新。 (包括检查选项框以执行迁移)
任何人都可以使用它吗?
编辑:我也试过这个,但没有成功,作为一个部署后的解决办法,但也没有运气。 http://robertgreiner.com/2012/05/using-entity-framework-database-migrations-to-update-a-remote-database/
答案 0 :(得分:1)
我发现了我认为的根本原因(Code Wise,实际根本原因是我是一个白痴)。我已经在web.config中配置了LocalDB客户端,迁移都是针对该数据库进行的。注释掉DB并允许包管理器中的Update-Database Command针对AzureDB运行,正确地更新了Azure上的数据库。
我还不完全确定为什么迁移不起作用,但我怀疑它是由于Web.Config文件我部署了默认设置数据库设置为Azure不知道的(LocalDB)。
所以这至少是解决方法,而我修复了我的Web.Config设置,以便使用正确的数据库部署到Azure。