快速问题是“如何让我的Azure数据库与本地数据库同步?”丢失的迁移和Azure数据库现在不同步
详情: 我一直在使用实体框架在我的项目,这真的不从ASP.NET MVC 5示例项目,其中有内置的身份2不同
有两个数据库环境中,一个从Identity调用ApplicationDbContext(aspnet_somethingUserDB),另一个调用StoreInitialTestContext(store_db)。
有趣的是,我将这些上下文中的每一个都放在一个单独的SQL数据库本地中,并且它们只位于一个数据库中,称为Azure服务上的store_db。
事情正在顺利进行,并且两个本地数据库(它们与Azure上的单个数据库具有相同的表补充)保持同步。该网站在本地进行调试和在Azure上运行良好。
通过添加模型对模式进行最后更改后,我执行了update-database命令并更新了本地数据库。不幸的是,当我将网站发布到Azure时,通过“run code-first migrations ...”选择上下文和选中标记后,Azure数据库未更新。
看着我的代码,我没有看到任何正在等待的迁移,所以我不确定如何让Azure数据库恢复同步。
作为最后的努力,我将Azure数据库从Basic设置为Standard,并使用我的本地store_db和Azure store_db之间的compare schema命令。我确保只有通过取消选中与aspnet_UsersomethingDb相关的表才能更新本地store_db中的表。
该操作没有成功,所以我试图撤消对本地问题所做的更改,以及哪些未在Azure上应用。
这也不成功,所以我调整了我的网站,以避免EntityFramework“模型与数据库差异”崩溃,以至于它至少会跛行。
在这一点上,我的本地数据库是好的,但关闭了“代码第一迁移”复选框,在Azure数据库报告:
“System.InvalidOperationException”类型的异常出现在的EntityFramework。 dll,但是 未在用户代码中处理
附加信息:自从创建数据库以来,支持'StoreInitialTestContext'上下文的模型已更改,因为 。考虑使用Code First Migrations来更新数据库 (http://go.microsoft.com/fwlink/?LinkId=238269)。
打开的复选框,该报告是:
类型“System.Data.SqlClient.SqlException”的异常出现在EntityFramework.dll但 在用户代码中处理
附加信息: 数据库中已有一个名为'ExtendedUserInformations'的对象。
这似乎表明,代码优先迁移想要添加对象以使事物同步,但该对象已存在。
是否有一个快速的方法让这些数据库同步? Azure中没有太多数据,所以如果必须的话,我可以导出一些记录并在重新创建数据库后重新加载它们。
您是否建议使用update-database并指定Azure连接字符串?
这听起来太令人难以置信了,必须有一个更简单的解决方法来获取数据库同步。 我的情况是,我想更新数据库shema只有什么缺少。我从scrach(初始)重新创建本地EF迁移,但不想删除Azure数据库。那么我怎样才能进行迁移只为丢失的实体更改?当然,我可以手动编辑evru迁移文件,但我想要的是为了维护两个或更多的迁移文件集 - 对于本地和远程数据库(天蓝色)。 – Arvis