Web部署任务失败:部署到azure时可能会发生数据丢失

时间:2016-12-03 17:14:13

标签: asp.net-mvc entity-framework azure

我有MVC项目首先使用EF代码我试图从Visual Studio发布到azure但我收到错误:" Web部署任务失败:可能发生数据丢失&#34 ;。我做了一些重构,包括重命名列,我知道错误发生的原因但是我想强制迁移,因为我确定我处理了数据丢失:-)但是我不知道如何跳过数据丢失检查。我发现在SQL项目中你可以选择属性,你可以取消选中“阻止潜在数据松散”。但我在MVC项目中找不到类似的东西。我试图在没有检查数据丢失的情况下包含我自己的架构更新脚本,但EF抱怨存在待定迁移,因此我尝试将缺少的条目从我的开发数据库复制到_MigrationHistory表但是它已经转向并不是那么简单;-)因为我的应用程序仍然处于开发阶段,我已经重新初始化了数据库,但是值得知道如何处理这种情况的真实"生产环境: - )

编辑: 经过一些测试后,我发现在发布到azure时,现在有了选项"更新数据库"默认情况下,它会根据本地和azure db上的diff生成db update脚本。它不同于旧的"运行代码优先迁移"因为旧版本正在将Db初始值设定项更改为MigrateDatabaseToLatestVersion,并且在应用程序启动时,已迁移数据库并进行了迁移。没有应用迁移时运行种子。 "更新数据库"另一方面,进程只能由生成的脚本处理,迁移文件和MigrationsHistory表不用于生产,也不用于种子方法。我在开始时感到困惑,但现在似乎合乎逻辑的是,更新脚本可以更好地控制数据库更改,您始终可以修改脚本,此外,将新代码移动到azure的发布过程仅在成功进行数据库更新后执行。

0 个答案:

没有答案