当引入数据模型更改时,EF Core 会将当前模型与旧模型的快照进行比较以确定差异,并生成迁移源文件;这些文件可以像任何其他源文件一样在项目的源代码管理中进行跟踪。
让我们假设您没有将迁移提交给版本控制。一段时间后,您或您的团队成员对数据模型进行更改,EFCore 将无法获取最后一个快照,因此更新数据库可能会导致一些可能已经存在的冲突/更改..!
dotnet ef migrations add <name>
自己重新创建迁移,但这仅适用于简单的操作。 如果您有使用自定义 SQL 的复杂迁移,或需要按特定顺序运行的 DDL 命令,那么您需要将迁移文件保留在 VCS 中以保留该顺序。一个示例是创建计算列。您需要使用第一次迁移创建表,然后使用手写 SQL 创建另一个表,以在第二次迁移中创建 SQL 函数,然后进行第三次迁移以引入使用该函数的计算列。 所有这些操作都需要遵循命令,无法通过简单的
dotnet ef migrations ...
命令创建
删除迁移将使 EF 无法为现有数据库的未来更改生成未来迁移。
此外,如果您执行以下操作...