如何在服务器生产中更新迁移数据库实体框架

时间:2016-09-30 13:28:43

标签: asp.net-mvc entity-framework entity-framework-6 asp.net-web-api2

我使用Asp.Net MVC和Entity Framework 6创建了一个基于Web的应用程序。目前,该应用程序已安装在我的客户端的生产服务器上。几个星期前,我的客户想要今天已经运行的其他应用程序模块。当然,就编程代码而言,新表还有几个额外的模型和属性类。 我的问题是:

  1. 如何在生产服务器中更新数据库模式,哪个visual studio我无法直接访问生产服务器上的现有数据库。这是我案例的精髓......

  2. 我的案子有没有办法或好的举动。请他的解释和他的指导。

  3. 作为附加信息:

    1. 我的客户端在将应用程序安装到生产服务器的过程中应用了相当严格的安全性。她的意图是进入应用程序服务器生产的过程不是由我,而是由他们自己的内部团队参考我的程序中的安装文档。

    2. 单独的服务器应用程序和数据库服务器。

    3. 我首先使用实体​​框架 - 代码(使用DropCreateDatabaseIfModelChanges)。

    4. 我的很多问题,谢谢你的关注和他的答案。我非常感谢您花时间以答案的形式,以评论或意见的形式提供解决方案。 感谢。

1 个答案:

答案 0 :(得分:0)

OP 1:

  

我使用实体框架 - 代码优先(使用   DropCreateDatabaseIfModelChanges)。

答案

当您处理生产数据库时,这是错误的方法。如果您这样做,数据库上的生产数据会发生什么?每次执行数据迁移时,所有内容都将丢失。因此,建议的生产方式为CreateDatabaseIfNotExists

<强> CreateDatabaseIfNotExists :

  

这是默认的初始化程序。顾名思义,它将创造   数据库(如果根据配置不存在)。

OP 2:

  

如何更新生产服务器中的数据库架构?

答案

您可以使用以下命令创建Sql脚本。之后,您可以使用它在生产SQL服务器上运行。

在Package Manger控制台上运行:

PM > Update-Database -Script

您可以在此处获取更多信息:Getting a SQL Script