1

我已经使用Asp.Net MVC和Entity Framework 6创建了一个基于web的应用程序。目前,该应用程序已安装在生产服务器我的客户端上。几个星期前,我的客户需要额外的应用程序模块,这些模块已经在运行。当然,就编程代码而言,新表格还有几个额外的模型和属性。 我的问题是:如何在服务器生产中更新迁移数据库实体框架

  1. 如何更新在生产服务器,Visual Studio中的我没有在生产服务器上直接访问现有数据库的数据库架构。这是我的情况的本质..

  2. 对我的情况有没有一种方法或一个好的举措。请他的解释和他的指导。

的附加信息:

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

  2. 服务器应用程序和数据库服务器分开。

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

这么多我的问题,谢谢大家的关注和答复。我非常感谢您花时间以可以提供评论或意见形式的解决方案的形式。 谢谢。

+1

你想[迁移](https://msdn.microsoft.com/en-us/ data/jj591621.aspx),你提到你的问题。您可以在应用程序中添加迁移代码,或关闭初始化程序(空)并提供脚本来更新数据库。 [见这里。](http://cpratt.co/migrating-production-database-with-entity-framework-code-first/) –

+0

谢谢@ SteveGreene..i已阅读您的链接articel ....但文章使用visual studio解释,也就是说,我的visual studio应该可以访问数据库...在这里,我不能直接访问生产数据库...应用程序第一次运行时是否应用了代码技巧..感谢您的评论... –

+0

您不需要(或想要)访问其他PROD数据库。通过迁移维护开发环境。当您想要部署时,构建您的应用程序并创建一个DBA运行的脚本(update-database -Script)。这将更新数据库模式并在__MigrationHistory中插入一条记录,告诉它它已经运行。 –

回答

0

OP 1:

我使用实体框架 - 第一代码(与 DropCreateDatabaseIfModelChanges)。

答:

这是错误的做法,当你处理生产database.What,如果你做到这一点的方式会发生对数据库的生产数据?所有数据都会在每次迁移时丢失。因此建议的生产方式是CreateDatabaseIfNotExists

CreateDatabaseIfNotExists :

这是默认初始值。顾名思义,如果每个配置都不存在,它将创建数据库 。

OP 2:

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

答:

您可以使用下面command.After SQL脚本,你可以用它来对生产SQL服务器上运行。包管理器控制台上

运行以下命令:

PM > Update-Database -Script 

您可以在这里更多的信息:Getting a SQL Script

+0

hi @Sampath ...是的,这是真的....我会失去我们的数据,如果我使用CreateDatabaseIfNotExists,....但我有备份第一次运行应用程序之前的数据...我知道,.....它的问题,我没有直接访问到生产服务器上的现有数据库...我还没有学习更多关于如何更新数据库-script,我会尝试先学习......但是,如果进程在数据库服务器上生产将不会是与应用程序的问题..感谢您的评论。 –

相关问题