繁体   English   中英

TFS 2015上无法识别导入模块SQLPS

[英]Import-Module SQLPS Not Recognized on on TFS 2015

我正在将集成测试添加到我们的CI构建过程中。

我有一个数据库项目(通过dacpac)部署到TFS服务器上的localDb实例。 (工作中)

下一步是将测试数据加载到数据库中。 我正在尝试导入SQLPS模块,然后运行Invoke-SqlCmd命令集。

Import-Module 'SQLPS' -DisableNameChecking;
Invoke-Sqlcmd -InputFile "$localDirectory\products\$branch\UnitTestData.sql" -ServerInstance "(localdb)\v12.0" -Database "[db]"

我不断收到无法识别SQLPS的错误。

TFS服务器已安装SQL Server 2012-但我正在使用2014对象。 我已经安装了SQL 2014 Feature Pack,以便可以在服务器和构建代理上使用powertools。

这似乎很常规-但是我不确定我在哪里出错。

弄明白了。 Powershell不是我的强项之一,因此对于在其构建服务器上寻找SQL Server Powershell工具的其他任何人。

您需要在构建服务器上安装SQL Server Feature Pack(如果未安装SQL Server)。 该功能包适用于2012年及更高版本。

您需要的特定项目是:SQL CLR类型SQL共享管理对象Powershell工具

Powershell工具将安装在C:\\ Program Files \\ Microsoft SQL Server {version} \\ Tools \\ PowerShell \\ Modules目录中。 其中{version:110 = 2012,120 = 2014,130 = 2016}

使用PS工具的路径参考-您要做的就是创建本地模块路径参考:

Param(
    [Parameter(Mandatory=$True)][string]$server,
    [Parameter(Mandatory=$True)][string]$database,
    [Parameter(Mandatory=$True)][string]$sqlPowerToolsPath,
    [Parameter(Mandatory=$True)][string]$sqlFile
)

$env:PSModulePath = $env:PSModulePath + ";$sqlPowerToolsPath"

我的PS脚本采用了参数server,数据库,sqlPowerToolsPath,sqlFile,并且我设置了本地会话PSModulePath以将路径包括在参数中。 在我的情况下,C:\\ Program Files \\ Microsoft SQL Server \\ 120 \\ Tools \\ PowerShell \\ Modules。

脚本的其余部分将导入SQLPS模块并执行参数中指定的SQL文件:

Import-Module 'SQLPS' -DisableNameChecking;
$sql = [Io.File]::ReadAllText($sqlFile);
Invoke-Sqlcmd -Query $sql -ServerInstance "$server" -Database "$database"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM