在 Azure DevOps 发布管道中从 PowerShell 执行 SQLCMD.exe
Execute SQLCMD.exe from PowerShell in an Azure DevOps Release Pipeline
我正在将我们的部署基础架构移植到 Azure DevOps(以前称为 Visual Studio Team Services),但我 运行 遇到了一个问题,我找不到任何好的解决方案。
我们正在使用 EF Core 迁移,to work around some unrelated issues 我们需要在 SQLCmd 中动态包装 SQL 脚本,使用 PowerShell 很容易。
但是,当我们的脚本作为发布管道中的常规 PowerShell 步骤执行时,它失败了,因为 SQLCMD.exe 不可用。不足为奇 - 但我也找不到任何记录的安装方法。
是否有工具安装程序或一些类似的现成组件可以让我执行一个 PowerShell 脚本来调用 SQLCMD.exe(通过 Invoke-SqlCmd
)作为 Azure Devops 管道的一部分?如果没有,完成此操作的最简单方法是什么?
您可以尝试创建一个包来在代理上安装所需的工具,因为现在可以这样做了。您可以使用 Chocolatey 任务从中 运行 一个包
有一个(旧的)巧克力包装可供您尝试:https://chocolatey.org/packages?q=SQLCMD
您不能通过可用的扩展程序之一使用正常的 sql 脚本吗?
参见 here or here
当然,使用自托管代理可能是一种选择,然后您可以安装任何您想要的东西。
我自己还没有尝试过,但是你可以在托管代理上为当前用户安装 Powershell 模块吗?因为 Invoke-SqlCmd 是 SqlServer module 的一部分,可以使用以下命令从 Powershell 库安装:
Install-Module -Name SqlServer -Scope CurrentUser
这个对我有用
Install-Module -Name SqlServer -Force -AllowClobber
不确定 -AllowClobber
不过,在我的本地 PC 上,命令抱怨没有它,我没有检查 Azure tbh。
我正在将我们的部署基础架构移植到 Azure DevOps(以前称为 Visual Studio Team Services),但我 运行 遇到了一个问题,我找不到任何好的解决方案。
我们正在使用 EF Core 迁移,to work around some unrelated issues 我们需要在 SQLCmd 中动态包装 SQL 脚本,使用 PowerShell 很容易。
但是,当我们的脚本作为发布管道中的常规 PowerShell 步骤执行时,它失败了,因为 SQLCMD.exe 不可用。不足为奇 - 但我也找不到任何记录的安装方法。
是否有工具安装程序或一些类似的现成组件可以让我执行一个 PowerShell 脚本来调用 SQLCMD.exe(通过 Invoke-SqlCmd
)作为 Azure Devops 管道的一部分?如果没有,完成此操作的最简单方法是什么?
您可以尝试创建一个包来在代理上安装所需的工具,因为现在可以这样做了。您可以使用 Chocolatey 任务从中 运行 一个包
有一个(旧的)巧克力包装可供您尝试:https://chocolatey.org/packages?q=SQLCMD
您不能通过可用的扩展程序之一使用正常的 sql 脚本吗? 参见 here or here
当然,使用自托管代理可能是一种选择,然后您可以安装任何您想要的东西。
我自己还没有尝试过,但是你可以在托管代理上为当前用户安装 Powershell 模块吗?因为 Invoke-SqlCmd 是 SqlServer module 的一部分,可以使用以下命令从 Powershell 库安装:
Install-Module -Name SqlServer -Scope CurrentUser
这个对我有用
Install-Module -Name SqlServer -Force -AllowClobber
不确定 -AllowClobber
不过,在我的本地 PC 上,命令抱怨没有它,我没有检查 Azure tbh。