Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在服务器生产中更新迁移数据库实体框架_Asp.net Mvc_Entity Framework_Entity Framework 6_Asp.net Web Api2 - Fatal编程技术网

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

Asp.net mvc 如何在服务器生产中更新迁移数据库实体框架,asp.net-mvc,entity-framework,entity-framework-6,asp.net-web-api2,Asp.net Mvc,Entity Framework,Entity Framework 6,Asp.net Web Api2,我使用Asp.NETMVC和EntityFramework6创建了一个基于web的应用程序。目前,该应用程序已安装在生产服务器my client上。几周前,我的客户需要今天已经运行的应用程序的附加模块。当然,在编程代码方面,新表还有几个额外的模型和属性类。 我的问题是: 我如何更新生产服务器中的数据库架构,而在visual studio中,我没有直接访问生产服务器上现有数据库的权限。这是我案件的实质 我的案子有什么好办法吗。请听他的解释和指导 作为补充信息: 我的客户机在将应用程序安装到生产服务

我使用Asp.NETMVC和EntityFramework6创建了一个基于web的应用程序。目前,该应用程序已安装在生产服务器my client上。几周前,我的客户需要今天已经运行的应用程序的附加模块。当然,在编程代码方面,新表还有几个额外的模型和属性类。 我的问题是:

  • 我如何更新生产服务器中的数据库架构,而在visual studio中,我没有直接访问生产服务器上现有数据库的权限。这是我案件的实质

  • 我的案子有什么好办法吗。请听他的解释和指导

  • 作为补充信息:

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

  • 服务器应用程序和数据库服务器分开

  • 我首先使用实体框架-代码(使用DropCreateDatabaseIfModelChanges)

  • 我问了这么多问题,谢谢大家的关注和他的回答。我真的很感谢你花时间回答问题,以评论或意见的形式提供解决方案。
    谢谢。

    作品一:

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

    Ans:

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

    这是默认的初始值设定项。顾名思义,它将创建 数据库(如果根据配置不存在)

    作品2:

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

    Ans:

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

    在包管理器控制台上运行此操作:

    PM > Update-Database -Script
    

    您可以在此处获得更多信息:

    您在问题中提到的您想要的信息。您可以在应用程序中添加迁移代码,或者关闭初始值设定项(null),并提供一个脚本来更新数据库。谢谢@SteveGreene..我已经阅读了你的链接文章…但是文章解释了如何使用visual studio,也就是说,我的visual studio应该可以访问数据库。。。在这里我不能直接访问生产数据库。。。在第一次运行应用程序时,是否应该应用代码技巧..谢谢您的评论..您不需要(或不想)访问其他PROD数据库。使用迁移维护开发环境。当您想要部署时,构建应用程序并创建DBA运行的脚本(updatedatabase-script)。这将更新数据库架构,并在迁移历史记录中插入一条记录,告诉您它已经运行。我还没有了解更多关于如何更新数据库的信息-脚本,我将尝试在EF中更多地探索该函数…感谢@SteveGreene为您提供的时间…嗨@Sampath…是的,这是真的…如果我使用CreateDatabaseIfNotExists,我将丢失数据,…但我在运行应用程序之前先备份数据…我知道…问题在于,我无法直接访问生产服务器上的现有数据库…我尚未了解有关如何更新数据库的更多信息-脚本,我将尝试先了解。。。但是,如果进程在DB服务器中,应用程序的生产将不会有问题。谢谢您的评论。