首先是EF7代码 - > SSDT包 - >生产服务器部署

时间:2016-10-18 10:42:17

标签: entity-framework visual-studio-2015 sql-server-data-tools continuous-deployment

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

我想使用Code First EF7生成和更新我的本地开发数据库,​​然后将更改导入我的SSDT数据库项目。从那里开始,我计划将MSDeploy与dbSqlPackage Provider一起使用,以便在将Web应用程序部署到我的Azure应用服务时更新我的​​Azure SQL prod数据库。 https://msdn.microsoft.com/en-us/library/hh550081(v=vs.103).aspx

另请注意,在我不假思索地将db更新部署到生产环境之前,我将进行某种预生成部署步骤,在那里我对preprod系统进行一些测试。

我的问题是 - 我如何在我的devbox本地,自动执行更新SSDT项目以反映我的本地开发人员数据库的步骤?我可以从数据库到SSDT项目进行手动SSDT比较,这将更新SSDT项目的sql文件。我正在查看SQLProject.exe,但从我所看到的,它只会创建dacpac或发布到数据库。

任何人都知道自动执行此步骤的方法吗?

1 个答案:

答案 0 :(得分:1)

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

假设您不想进行EF迁移,则无法从已部署的数据库自动生成.sqlproj和关联的.sql文件;但如果你不关心数据库项目本身,使用sqlpackage(或者你自己的代码在DacFX之上)从你部署的数据库中生成.dacpac并使用 作为您通过其他环境宣传的人工制品。

至于管理pre-prod / prod隔离,有很多方法可以做到这一点,包括但不限于VSTS发布管理 - 它内置了部署到Azure SQL DB的任务。