在开发过程中使用迁移的正确方法

Proper way to work with migrations during development

当模型不是最终形式或关系仍然存在一些不一致时,如何在开发过程中正确使用迁移?

类似问题:

How to deal with database changes during development with EF Core?

1:我个人会把它留作历史。当然,您始终可以删除所有迁移并创建一个包含所有内容的迁移,但想象一下在添加了 100 ++ 个表(实体类型)之后进行迁移,并且当您只有一个时,您无法确保正在更新生产数据库使用您总是重新创建的同名迁移。

2:是的,你确实应该做小的迁移。您可以通过将数据库更新为特定迁移然后逐步删除所有其他迁移来撤消迁移。这至少适用于 package-manager-console tool(也许也适用于 dotnet 工具)。

例如,您已经添加了一个模型已更改的迁移,您可以使用以下命令返回到旧迁移:

Update-Database -Migration MyMigrationBeforeBadModelMigration

请注意,如果在要撤消的迁移中添加了一些表,这可能会删除这些表。

然后逐步移除不良迁移

Remove-Migration // will always remove the latest migration so repeat that if you have many to remove

然后只需创建新的正确迁移并更新您的数据库即可。

3:是的,给他们起个好名字。例如 CustomerEntityAddedCustomerUniqueNameIndexAdded.