我有一个 SSDT sql server 数据库项目,我想将其部署到本地 SQL Server 2016 和 SQL Azure。
我希望能够构建这个项目(使用 VSTS 构建代理)并获得多个 DACPAC 文件,每个目标平台一个。
这个问题Visual Studio Database project target platform in publish profile实际上可能是答案。但是我有一种感觉,我可能需要单独的 DACPAC 用于部署场景。
我有一个 SSDT sql server 数据库项目,我想将其部署到本地 SQL Server 2016 和 SQL Azure。
我希望能够构建这个项目(使用 VSTS 构建代理)并获得多个 DACPAC 文件,每个目标平台一个。
这个问题Visual Studio Database project target platform in publish profile实际上可能是答案。但是我有一种感觉,我可能需要单独的 DACPAC 用于部署场景。
由于我使用 Visual Studio 进行构建,因此我可以将属性参数传递给命令行
/p:DSP=Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider
这让我可以在构建时控制数据库模式提供程序。在 YAML 天蓝色管道中使用它看起来像这样:
- task: VSBuild@1
inputs:
solution: '$(build.SourcesDirectory)\mydatabase\whoopie.sqlproj'
vsVersion: 'latest'
msbuildArgs: '/p:DSP=Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider'
您不需要单独的 dacpac,技术上甚至不需要单独的发布配置文件。您需要在发布时设置选项以允许不兼容的平台。这将使您能够将数据库发布到任何受支持的平台,只要您不使用不适用于该版本 SQL Server 的功能。