EF7 代码优先 -> SSDT 包 -> 生产服务器部署
EF7 Code first -> SSDT package -> Production Server Deployments
我正在尝试围绕新的 ASP.NET 核心/EF7 应用程序设置持续交付流程。
我想使用 Code First EF7 生成和更新我的本地开发数据库,然后将更改获取到我的 SSDT 数据库项目中。从那里我计划使用 MSDeploy 和 dbSqlPackage Provider 来更新我的 Azure SQL prod db,当我将 webapp 部署到我的 Azure 应用程序服务时。 https://msdn.microsoft.com/en-us/library/hh550081(v=vs.103).aspx
另请注意,在我无意识地将数据库更新部署到生产环境之前,我将进行某种预生产部署步骤,在预生产系统上进行一些测试。
我的问题是 - 如何在我的本地开发箱上自动执行更新 SSDT 项目以反映我的本地开发数据库的步骤?我可以执行从数据库到 SSDT 项目的手动 SSDT 比较,这将更新 SSDT 项目 sql 文件。我正在查看 SQLProject.exe,但据我所知,它只会创建 dacpac 或发布到数据库。
有人知道自动执行此步骤的方法吗?
我认为考虑到您的设置,我会考虑 EF 迁移而不是 SSDT,特别是考虑到您使用的是 EF7 并且迁移像梅毒一样不像以前那样笨拙。
假设您不想进行 EF 迁移,没有简单的方法可以从已部署的数据库中自动生成 .sqlproj
和关联的 .sql
文件;但是如果你不关心数据库项目本身,那么使用 sqlpackage - 或者你自己在 DacFX 之上的代码 - 从你部署的数据库中生成一个 .dacpac
,然后使用 that 作为您通过其他环境推广的人工制品。
至于管理预生产/生产隔离,有很多方法可以做到这一点,包括但不限于 VSTS 发布管理 - 它内置了部署到 Azure SQL 数据库的任务.
我正在尝试围绕新的 ASP.NET 核心/EF7 应用程序设置持续交付流程。
我想使用 Code First EF7 生成和更新我的本地开发数据库,然后将更改获取到我的 SSDT 数据库项目中。从那里我计划使用 MSDeploy 和 dbSqlPackage Provider 来更新我的 Azure SQL prod db,当我将 webapp 部署到我的 Azure 应用程序服务时。 https://msdn.microsoft.com/en-us/library/hh550081(v=vs.103).aspx
另请注意,在我无意识地将数据库更新部署到生产环境之前,我将进行某种预生产部署步骤,在预生产系统上进行一些测试。
我的问题是 - 如何在我的本地开发箱上自动执行更新 SSDT 项目以反映我的本地开发数据库的步骤?我可以执行从数据库到 SSDT 项目的手动 SSDT 比较,这将更新 SSDT 项目 sql 文件。我正在查看 SQLProject.exe,但据我所知,它只会创建 dacpac 或发布到数据库。
有人知道自动执行此步骤的方法吗?
我认为考虑到您的设置,我会考虑 EF 迁移而不是 SSDT,特别是考虑到您使用的是 EF7 并且迁移像梅毒一样不像以前那样笨拙。
假设您不想进行 EF 迁移,没有简单的方法可以从已部署的数据库中自动生成 .sqlproj
和关联的 .sql
文件;但是如果你不关心数据库项目本身,那么使用 sqlpackage - 或者你自己在 DacFX 之上的代码 - 从你部署的数据库中生成一个 .dacpac
,然后使用 that 作为您通过其他环境推广的人工制品。
至于管理预生产/生产隔离,有很多方法可以做到这一点,包括但不限于 VSTS 发布管理 - 它内置了部署到 Azure SQL 数据库的任务.