我继承了一个使用 Entity Framework Core 的应用程序及其数据库的转储。
不幸的是,该应用程序没有使用 EF 迁移。
为了使它步入正轨,我创建了第一个迁移。但是尝试更新数据库时,我收到错误,因为表已经存在,这是完全可以理解的。
由于代码中的模型应该与关系模型相匹配,因此什么都不需要做,只需要初始化__EFMigrationsHistory
表和类似的东西。
在这种情况下,有没有办法通过仅应用初始差异来引导 EF Core 迁移(如果代码与模式一致,则希望没有任何差异)?
否则我想我必须创建一个新的空数据库,让 EF Core 引导其模式,然后从原始数据库复制数据。
如果有必要的话,我会使用最新的 EF Core 9.0.2,因为事情会定期发展。
我能想到的一个解决方法是在数据库中手动创建
__EFMigrationsHistory
表,并插入一条记录来表示您的数据库与 EF 创建的快照“保持同步”。该
__EFMigrationsHistory
表中只有两个简单字段:一旦您插入一条记录来表明您的“初始迁移”已经应用,您就应该可以随后进行新的迁移并在现有数据库上运行它们。
我在数据库中插入的内容的示例如下: