我有两个WebApp。 两者都指向同一个数据库,并且需要组织两个App的迁移。 两个应用程序都设置为MigrateDatabaseToLatestVersion。 当你开始使用空白数据库应用程序时,首先会创建scheme,在表__MigrationHistory中创建关于此的记录,一切正常。 但是当你启动第二个应用程序时应该对现有数据库表进行更改,但是应用程序崩溃时出现错误 - " ...此表已经存在" 如何解决这个问题?
代码第二个应用程序的示例
Global.asax中
1.0-SNAPSHOT
答案 0 :(得分:0)
那不行。在一个应用程序中修改模型时,它会查看之前要进行比较的迁移(在代码中)。它将尝试重新创建在其他应用程序中所做的更改,否则您将收到模型不匹配错误。
最佳解决方案是在一个应用程序中维护模型。否则,您必须在另一个应用程序中创建迁移以使其保持同步:
// Application 1:
add-migration MyChanges
update-database
// Application 2:
add-migration SyncMyChanges -IgnoreChanges // Just update meta model
update-database
您需要注意App 2中没有待处理的更改。请参阅Entity Framework Under the Hood
如果不共享模型,您可能只需要在两个应用程序中创建初始迁移起点:
add-migration Initial -IgnoreChanges