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

时间:2016-04-17 18:09:54

标签: asp.net entity-framework asp.net-core-mvc ef-migrations

我有什么:

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

我需要什么:

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

备注:

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

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

  • 我记得“发布”向导过去有“执行EF迁移”选项。现在看不到。

1 个答案:

答案 0 :(得分:2)

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

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

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

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

由于您需要自动化(如果您对它感到满意),您可以使用CI系统更新您的生产数据库,这是我的团队和我更新我们的暂存数据库的方式。

希望有所帮助!