Entity framework EF7代码优先->;SSDT包->;生产服务器部署
我正试图围绕一个新的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或发布到数据库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更新部署到生产环境之前,在预生产系统上进行一些测试 我的问题是-如何
有人知道自动化这一步的方法吗 我认为,考虑到您的设置,我会考虑EF迁移,而不是SSDT,特别是考虑到您使用EF7,而且迁移与梅毒一样,不像以前那样尴尬 假设您不想进行EF迁移,那么从部署的数据库自动生成
.sqlproj
和相关.sql
文件是不容易的;但是,如果您不关心数据库项目本身,那么使用sqlpackage(或在DacFX之上使用您自己的代码)从部署的数据库生成.dacpac
,然后将其用作您在其他环境中推广的人工制品并不难
对于生产前/生产隔离的管理,有多种方法,包括但不限于VSTS发布管理—它内置了用于部署到Azure SQL DB的任务。我得出了相同的结论—从长远来看,使用SQLPackage工具创建dacpac,然后将其签入Sourcecontrol,而不必担心SSDT项目。如果应用DACPAC时出现问题,请返回EF并在配置中修复,或者在迁移中修复(丑陋)。虽然现在,只是为了关注数据库,我将手动维护SSDT中间步骤。