将迁移与实际更改同步

本文关键字:同步 迁移 | 更新日期: 2023-09-27 18:09:43

EF Migrations不能自动检测一些复杂的更改,所以我创建了一个空迁移,并手动对Up()Down()进行更改。我更新了数据库,一切都在向前和反向工作。

但是后来,当我做了更多的更改并创建了一个新的迁移时,它会自动添加各种不需要的更改-因为我已经在之前的迁移中手动处理了它们。

我知道我可以删除所有的迁移并从头开始,但这会产生太多问题,所以我不想这样做。

如何解决这个问题?

将迁移与实际更改同步

如果您没有事先发布的数据库,您总是可以建立一个新的基线。删除所有旧的迁移,然后运行:

Add-Migration MyBaseline –IgnoreChanges
Update-Database
现在您的模型和数据库将处于同步状态,您可以进行模型更改并创建新的迁移。我通常打开自动化,直到我准备好部署,然后我把它们卷成一个单一的迁移,我可以用脚本向客户端输出。

https://msdn.microsoft.com/en-us/data/dn579398.aspx step3

Up()Down()函数中删除违规垃圾
编制
Update-Database