在生产服务器上运行EF迁移的最佳方法是什么?

f0r*_*0rt 7 asp.net entity-framework ef-migrations asp.net-core-mvc

是)我有的:

  • VS2015
  • ASP.NET 5 MVC 6项目
  • EF 7
  • 我项目的一些迁移
  • Azure网站
  • 我通过VS发布"Publish .."wizzard.

我需要的:

  • 我需要知道在生产数据库上运行迁移的最佳方法是什么.
  • 我更喜欢可以自动化的东西.最佳解决方案将集成在"发布"向导中.

笔记:

  • 我正在使用"dnx ef database update"在我的开发站上运行迁移.我想我可以使用webapp PS控制台,但......似乎不是正确的方法.

  • 我知道我可以为迁移生成一个SQL脚本,但这似乎太手动了.

  • 我记得"Publish"向导过去有"Execute EF migrations"选项.现在看不到它.

小智 2

这取决于谁拥有生产数据库的控制权(开发团队或单独的 DBA 团队)。

在我参与的一个客户项目中,每个开发人员都有自己的数据库副本,他们在其中测试所有迁移。签入应用程序代码和迁移代码后,我们使用 TeamCity 作为 CI 服务器来部署网站、更新临时数据库并运行单元测试和集成测试。

我们向 DBA 团队提供了 SQL 脚本(由 EF 生成)以针对生产数据库运行。我们的开发团队从未接触过生产数据库。

如果您被允许更新生产数据库,您可以自己完成。但我强烈建议检查然后运行 ​​EF 生成的脚本,您可以在必要时回滚这些脚本。另外,不要忘记根据需要备份生产数据库。

由于您想要自动化(并且如果您对此感到满意),因此您可以使用 CI 系统来更新生产数据库,就像我和我的团队更新临时数据库的方式一样。

希望有帮助!