Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 在开发过程中使用迁移的正确方法_Asp.net Core_Ef Code First_Entity Framework Core_Entity Framework Migrations - Fatal编程技术网

Asp.net core 在开发过程中使用迁移的正确方法

Asp.net core 在开发过程中使用迁移的正确方法,asp.net-core,ef-code-first,entity-framework-core,entity-framework-migrations,Asp.net Core,Ef Code First,Entity Framework Core,Entity Framework Migrations,在开发过程中,当模型未达到最终形式或关系中仍然存在一些不一致时,如何正确地处理迁移 在版本控制系统(如git)中,迁移应该更多地被视为提交,甚至代表最小的更改,还是什么 我应该为模型中的每个小更改添加新的迁移,还是应该重新创建数据库和初始迁移,直到我对模型的外观感到满意?我仍然可以在最后删除所有这些迁移,并创建一个初始迁移来清理这些小迁移 如何正确命名迁移?大多数情况下,我想不出一个好名字,我给他们起了一些毫无意义的名字,比如X1,X2,X3 类似问题: 1:我个人会把它当作历史。当然,您总

在开发过程中,当模型未达到最终形式或关系中仍然存在一些不一致时,如何正确地处理迁移

  • 在版本控制系统(如git)中,迁移应该更多地被视为提交,甚至代表最小的更改,还是什么

  • 我应该为模型中的每个小更改添加新的迁移,还是应该重新创建数据库和初始迁移,直到我对模型的外观感到满意?我仍然可以在最后删除所有这些迁移,并创建一个初始迁移来清理这些小迁移

  • 如何正确命名迁移?大多数情况下,我想不出一个好名字,我给他们起了一些毫无意义的名字,比如X1,X2,X3

类似问题:


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

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

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

Update-Database -Migration MyMigrationBeforeBadModelMigration
请注意,如果在迁移过程中添加了一些要撤消的表,则可能会删除这些表。

然后逐步删除错误的迁移

Remove-Migration // will always remove the latest migration so repeat that if you have many to remove
然后创建新的正确迁移并更新数据库


3:是的,给他们起个正名。例如CustomerEntityAdded或CustomerUniqueNameIndexAdded。

在开发过程中,我通常不太关心如何进行第一次部署。这是代码优先,我的类是源代码控制的。当我开始关心我的测试数据时,我引入了迁移。