使用MigrateDatabaseToLatestVersion从两个WebApp迁移

时间:2016-09-27 05:38:02

标签: c# entity-framework ef-migrations

我有两个WebApp。 两者都指向同一个数据库,并且需要组织两个App的迁移。 两个应用程序都设置为MigrateDatabaseToLatestVersion。 当你开始使用空白数据库应用程序时,首先会创建scheme,在表__MigrationHistory中创建关于此的记录,一切正常。 但是当你启动第二个应用程序时应该对现有数据库表进行更改,但是应用程序崩溃时出现错误 - " ...此表已经存在" 如何解决这个问题?

代码第二个应用程序的示例

Global.asax中

1.0-SNAPSHOT

1 个答案:

答案 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