【问题标题】:How to apply migrations to production server如何将迁移应用到生产服务器
【发布时间】:2018-01-09 22:08:49
【问题描述】:
使用 Code First 和 Entity Framework,我在我的开发机器上创建了我的 web 应用程序,使用迁移并将我的 beta 应用程序发布到我的生产服务器和数据库。
然后在我的开发系统上,我做了很多更改,创建了几个迁移并将它们应用到我的本地开发数据库。当我使用 update-database 时,这会更新我的本地开发数据库,但是我如何将迁移应用到我的生产服务器数据库?
我一直在使用 update-database -script 将 SQL 手动应用于我的生产服务器。有没有更好的办法?
【问题讨论】:
标签:
sql
asp.net-mvc
entity-framework
【解决方案1】:
理想情况下,您应该使用某种实际的数据库部署系统,例如 ReadyRoll。除此之外,您应该生成可以手动提交和部署的 SQL 脚本,最好是通过组织中的 DBA 角色。基于代码的迁移可以在没有通知的情况下对您的数据库执行各种潜在的坏事,但是在 SQL 脚本中,您可以轻松看到即将删除的表或即将删除包含大量不可替代数据的列.
【解决方案2】:
您在 Web.config 中的内容是确定应用程序指向的数据库。当您将其指向生产并运行相同的 EF 命令(dotnet ef migrations add migrationName 和 dotnet ef database update)时,它应该更新您的生产环境。
对于我的设置,我只是不部署我的 web.config,所以在生产中它总是指向生产数据库。当我在生产中运行 EF 更新脚本时,它会更新生产,我很高兴。