【问题标题】:AzureDevOps pipeline and sqlpackageAzureDevOps 管道和 sqlpackage
【发布时间】:2018-10-12 05:55:13
【问题描述】:

全部,

我想在 CI 过程中创建一个包含目标数据库架构的 DACPAC 文件。我可以使用它作为基线模式来创建一个测试平台,我可以在该测试平台上测试发布中的脚本。

SqlPackage.exe /TargetFile:"C:\AzureDevOps\AdventureWorks.dacpac" /Action:Extract /SourceServerName:"SQL2016" /SourceDatabaseName:"AdventureWorks2016"

SqlPackage.exe /SourceFile:"C:\AzureDevOps\AdventureWorks.dacpac" /Action:Publish /TargetServerName:"SQL2016" /TargetDatabaseName:"AdWorks"

我可以使用上述脚本创建 DACPAC,然后部署 DACPAC 以创建测试平台。

我不知道如何将此步骤合并到 AzureDevOps 管道中。我搜索了sqlpackage 任务,但找不到。

Perform SQL server actions in Azure Pipelines or TFS

其他人能否说明如何做到这一点?

【问题讨论】:

    标签: sql-server continuous-integration azure-devops azure-pipelines


    【解决方案1】:

    SqlPackage 可执行文件需要安装在代理机器中才能执行 SqlPackage 命令。我不确定 HostedAgent 是否有这个可执行文件。所以我建议通过创建我们自己的代理来安装 Sqlpackage。然后,您可以使用自己的代理在 AzureDevOps 中执行脚本。

    如果您使用Azure SQL Database,则有一个default task available,您可以在其中轻松部署 DACPAC 文件

    【讨论】:

    • 你能给我更多的信息吗?我将阅读并与 vsts 管理员一起学习。 > 对我来说稍后部署,我需要先提取架构以创建 dacpac。
    • @GopinathRajee 当然,请阅读here,了解如何在 Windows 机器(或)任何其他平台上安装代理。我认为您的 VSTS 管理员知道如何在机器中部署新代理。如果您需要任何信息,请告诉我
    • 我在想,如果有办法将 repo 与 basline dacpac 进行比较并生成差异脚本,那么我什至不必设置 testbed 数据库。我只需要获取差异脚本并针对目标环境运行它。有办法吗?使用 dacpac 创建骨架数据库,我什至可以使用 docker/container 构建 testdb 并在使用后立即销毁它。太酷了!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 2019-06-30
    相关资源
    最近更新 更多