从__MigrationHistory表中删除数据后,EF 6代码优先迁移

时间:2018-09-05 06:55:59

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

我不小心从__MigrationHistory表中删除了数据,并且尝试将新表和列更改迁移到db。这次EF6告诉我一个错误

"There is already an object named 'xxxx' in the database.".

我使用此命令尝试过这种方式,并且对表列的更改没有影响。

Add-Migration MyMigration1 -IgnoreChanges
Update-database -Force

关于重新创建数据库或其他数据库,有很多建议。但是这些方式可能是影响数据丢失到我的数据库中,该数据库包含大量已测试的数据,并且我无法丢失任何数据。如何在不丢失任何数据的情况下解决此错误。如果有人请...

更新

最后,我找到了解决问题的解决方案。我不确定这不是解决此类问题的首选方法,但对我有用。

我从__MigrationHistory表中清除了数据,试图迁移新数据库,然后将数据从新数据库的__MigrationHistory复制到了我的旧数据库,然后将AutomaticMigration设置为true并运行update-database命令,问题得以解决。

1 个答案:

答案 0 :(得分:0)

我不确定它是否可以解决此问题,但是它对我有用。

我只是用正确的版本和已经应用的迁移的名称插入到该表中,我在EF Core中完成了它,并且它确实有效,但是请耐心等待有人确认我正在写什么。

我看到的问题是,您需要再填写两个字段(在EF Core中只有两列),但是我认为您可以使用例如SQL Profiler来接收它们