Asp.net mvc 如何在服务器生产中更新迁移数据库实体框架
我使用Asp.NETMVC和EntityFramework6创建了一个基于web的应用程序。目前,该应用程序已安装在生产服务器my client上。几周前,我的客户需要今天已经运行的应用程序的附加模块。当然,在编程代码方面,新表还有几个额外的模型和属性类。 我的问题是: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中,我没有直接访问生产服务器上现有数据库的权限。这是我案件的实质 我的案子有什么好办法吗。请听他的解释和指导 作为补充信息: 我的客户机在将应用程序安装到生产服务
谢谢。作品一: 我首先使用实体框架-代码(使用 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服务器中,应用程序的生产将不会有问题。谢谢您的评论。