【问题标题】:Combine migrations in MVC 5 Code First Project在 MVC 5 Code First 项目中合并迁移
【发布时间】:2017-05-23 10:06:58
【问题描述】:

非常快速的问题。

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

【问题讨论】:

  • 如果您尚未将数据库部署到生产环境,并且仍在进行开发,那么我不会创建任何迁移。当您完成模型并准备好推送到生产环境时,可以,创建初始迁移。
  • @MariaInesParnisari 我会定期更新数据库以用于开发目的,因此数据库会发生变化。该项目仍在 iisexpress 上运行。谢谢。
  • @MariaInesParnisari 据我了解,继续进行小型迁移并在部署之前将它们组合起来。我说的对吗?
  • 在进行开发时,您可以启用自动迁移。 msdn.microsoft.com/en-us/library/jj554735(v=vs.113).aspx。然后,当您准备好部署时,您重新创建 InitialMigration。
  • @MariaInesParnisari 如果您愿意,可以简要说明您的最佳做法(并收到+1);)谢谢。

标签: asp.net-mvc-5 code-first entity-framework-migrations


【解决方案1】:

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

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

但有一个更好的方法:自动迁移。每次您进行更改并致电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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2015-01-04
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    相关资源
    最近更新 更多