我非常熟悉使用Database First方法的Entity Framework以及如何使用它来部署解决方案。
基本上,在我的数据库第一种方法的解决方案中,我有一个Web客户端项目,它使用数据访问库项目,该项目使用数据库第一种方法进行编码。
因此,首先,我编写了一些SQL Server脚本来添加新表(或进行架构更改)。
接下来,转到数据访问库项目,使用EF edmx设计器从现有数据库更新.net,编译此数据访问层,并在客户端Web项目中自动更新DDL引用。
将解决方案部署到生产服务器时:
现在,我有一个新的应用程序,其中包括一个使用EF Code First方法的Web项目和数据访问层项目。 我是EF代码的第一个新方法。我知道当我更改数据库模式时,例如添加新表,我需要在Visual Studio的包管理控制台中首先运行代码,以便让我的后端数据库实例更改/更新。
我的问题:
当我将应用程序部署到生产环境时,我应该遵循哪些步骤?
如何更新使用EF Code First方法创建的生产SQL Server?
这是一个自动过程还是我必须像在包管理控制台下的Visual Studio中一样手动运行迁移?
感谢。
答案 0 :(得分:5)
如果您使用的是Azure,则可以配置它具有自动过程,如下所示。
否则你必须像这样手动完成:
您必须创建一个db脚本,之后您可以在生产数据库上运行它。
<强> PM&GT; Update-Database -Script
您可以参考此文档:Getting a SQL Script
我使用norrary的另一个选项:
当我需要在生产数据库中运行迁移时,我更改了我的conn
字符串以反映生产数据库并在运行之后:
<强> PM&GT;更新数据库强>
答案 1 :(得分:1)
您有多种迁移选项。
您可以使用迁移初始值设定项,在应用启动时,它将使用应用程序连接字符串来运行迁移。通过在初始化例程中添加与此类似的行来执行此操作:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<Context, Configuration>());
其中Context
是您的DbContext类型,Configuration
是您进行第一次迁移时生成的配置类。
有关详细信息,请参阅此MSDN文章:https://msdn.microsoft.com/en-us/data/jj591621.aspx