在 MVC 5 Code First 项目中合并迁移

Combine migrations in MVC 5 Code First Project

非常快的问题。

我从事 MVC 5 Code First 项目,我对数据库模型做了很多小改动。有时更改会覆盖以前的更改。 update-database -targermigration InitialCreate 然后删除所有迁移(初始迁移除外)和 add-migration cumulative 是否安全? 我期待像 YesNo 这样的专家意见。 提前谢谢你。

了解其他人在这方面的做法会很有趣,但我会添加我会做的事情。 (免责声明:我已经很久没有自己做过了)

先了解一下上下文。代码迁移是告诉数据库如何在您对模型进行更改后自行更新的代码片段 类。由于您正在进行开发并且没有将代码推送到生产环境,因此进行迁移没有意义,因为没有需要处理的生产数据库。现在,如果需要,您可以简单地删除本地数据库并在每次进行更改时从头开始重建它。但这很耗时。

但是有更好的方法:自动迁移。每次您进行更改并调用 Update-Database 时,EF 都会(在幕后)为您创建迁移并更新数据库。

  1. 运行 Enable-Migrations –EnableAutomaticMigrations.
  2. 每次更改模型时,运行 Update-Database

请注意,在某些更改中仍需要您手动添加迁移,如指定的那样here

现在,这显然不适合生产环境,for a variety of reasons

因此,当您构建完应用程序的 MVP 版本后,我将删除本地数据库,并覆盖初始迁移,如图所示 here

  1. 删除 InitialCreate.cs(或整个 Migrations 文件夹...)
  2. 运行 Add-Migration InitialCreate
  3. 删除本地数据库。
  4. 运行 Update-Database -Force.