[英]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.