在 TFS 2015 上无法识别导入模块 SQLPS
Import-Module SQLPS Not Recognized on on TFS 2015
我正在向我们的 CI 构建过程添加集成测试。
我有一个数据库项目(通过 dacpac)部署到 TFS 服务器上的 localDb 实例。 (工作)
下一步是将测试数据加载到数据库中。我正在尝试导入 SQLPS 模块,然后 运行 Invoke-SqlCmd commandlet。
Import-Module 'SQLPS' -DisableNameChecking;
Invoke-Sqlcmd -InputFile "$localDirectory\products$branch\UnitTestData.sql" -ServerInstance "(localdb)\v12.0" -Database "[db]"
我一直收到 SQL无法识别 PS 的错误。
TFS 服务器安装了 SQL Server 2012 - 但我使用的是 2014 对象。我已经安装了 SQL 2014 功能包,以便 powertools 在服务器和构建代理上可用。
这看起来很常规 - 但我不确定我哪里出错了。
明白了。 Powershell 不是我的强项之一,因此对于正在其构建服务器上寻找 SQL 服务器 Powershell 工具的任何其他人。
您需要在构建服务器上安装 SQL 服务器功能包(如果未安装 SQL 服务器)。该功能包适用于 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 脚本采用参数服务器、数据库、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"
我正在向我们的 CI 构建过程添加集成测试。
我有一个数据库项目(通过 dacpac)部署到 TFS 服务器上的 localDb 实例。 (工作)
下一步是将测试数据加载到数据库中。我正在尝试导入 SQLPS 模块,然后 运行 Invoke-SqlCmd commandlet。
Import-Module 'SQLPS' -DisableNameChecking;
Invoke-Sqlcmd -InputFile "$localDirectory\products$branch\UnitTestData.sql" -ServerInstance "(localdb)\v12.0" -Database "[db]"
我一直收到 SQL无法识别 PS 的错误。
TFS 服务器安装了 SQL Server 2012 - 但我使用的是 2014 对象。我已经安装了 SQL 2014 功能包,以便 powertools 在服务器和构建代理上可用。
这看起来很常规 - 但我不确定我哪里出错了。
明白了。 Powershell 不是我的强项之一,因此对于正在其构建服务器上寻找 SQL 服务器 Powershell 工具的任何其他人。
您需要在构建服务器上安装 SQL 服务器功能包(如果未安装 SQL 服务器)。该功能包适用于 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 脚本采用参数服务器、数据库、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"