Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework EF7代码优先->;SSDT包->;生产服务器部署_Entity Framework_Visual Studio 2015_Sql Server Data Tools_Continuous Deployment - Fatal编程技术网

Entity framework EF7代码优先->;SSDT包->;生产服务器部署

Entity framework EF7代码优先->;SSDT包->;生产服务器部署,entity-framework,visual-studio-2015,sql-server-data-tools,continuous-deployment,Entity Framework,Visual Studio 2015,Sql Server Data Tools,Continuous Deployment,我正试图围绕一个新的ASP.NET Core/EF7应用程序建立一个连续的交付流程 我想先使用代码EF7来生成和更新我的本地开发人员数据库,然后将更改输入到我的SSDT数据库项目中。从那时起,我计划使用MSDeploy with dbSqlPackage Provider,在我将webapp部署到Azure应用程序服务时,使用任何更改来更新我的Azure SQL prod db 还要注意的是,我将进行某种预生产部署步骤,在将db更新部署到生产环境之前,在预生产系统上进行一些测试 我的问题是-如何

我正试图围绕一个新的ASP.NET Core/EF7应用程序建立一个连续的交付流程

我想先使用代码EF7来生成和更新我的本地开发人员数据库,然后将更改输入到我的SSDT数据库项目中。从那时起,我计划使用MSDeploy with dbSqlPackage Provider,在我将webapp部署到Azure应用程序服务时,使用任何更改来更新我的Azure SQL prod db

还要注意的是,我将进行某种预生产部署步骤,在将db更新部署到生产环境之前,在预生产系统上进行一些测试

我的问题是-如何在devbox上本地自动更新SSDT项目以反映本地dev数据库?我可以从数据库中手动比较SSDT和SSDT项目,这将更新SSDT项目sql文件。我正在查看SQLProject.exe,但从我看到的情况来看,它只会创建dacpac或发布到数据库


有人知道自动化这一步的方法吗

我认为,考虑到您的设置,我会考虑EF迁移,而不是SSDT,特别是考虑到您使用EF7,而且迁移与梅毒一样,不像以前那样尴尬

假设您不想进行EF迁移,那么从部署的数据库自动生成
.sqlproj
和相关
.sql
文件是不容易的;但是,如果您不关心数据库项目本身,那么使用sqlpackage(或在DacFX之上使用您自己的代码)从部署的数据库生成
.dacpac
,然后将其用作您在其他环境中推广的人工制品并不难


对于生产前/生产隔离的管理,有多种方法,包括但不限于VSTS发布管理—它内置了用于部署到Azure SQL DB的任务。

我得出了相同的结论—从长远来看,使用SQLPackage工具创建dacpac,然后将其签入Sourcecontrol,而不必担心SSDT项目。如果应用DACPAC时出现问题,请返回EF并在配置中修复,或者在迁移中修复(丑陋)。虽然现在,只是为了关注数据库,我将手动维护SSDT中间步骤。