Otcopus部署-SQL-部署DACPAC“无法连接到数据库服务器。”

时间:2019-10-23 15:55:06

标签: sql-server powershell-2.0 octopus-deploy dacpac

首次试用八达通部署。尝试将dacpac部署到计算机上,并且它不断失败。我不断收到以下错误:

Exception calling "Extract" with "4" argument(s): "Could not connect to database server." 
At C:\Octopus\Work\20191023152506-102-81\Script.ps1:394 char:13 
+             $dacServices.Extract($dbDacPacFilepath, $TargetDatabase,  ... 
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException 
    + FullyQualifiedErrorId : DacServicesException 

The remote script failed with exit code 1 

The action SQL - Deploy DACPAC on Staging failed

我目前正在使用SQL Server 2017,并且已为SQL Server 2016安装了dacframework。对于我尝试使用 localhost 的连接字符串以及名称,服务器在sql Management Studio中提供。我没有传递任何凭据,我正在使用集成安全性。我也传递了数据库名称。 我也跟随this youtube视频,只是不使用项目变量。

1 个答案:

答案 0 :(得分:0)

根据我以前的经验,我只是使用SqlPackage.exe来部署dacpac。帮助手动测试和完善权限或其他问题。

例如:

#example usage:Generate-DBUpdate-Script -server $dbServer -db $dbName -user $dbUser -psw $dbPassword -dacpacFilePath $dacpacFile -publishProfilePath ".\Publish\$dbPublishProfile" -outputFile $SqlUpgradeArtifactName
function Generate-DBUpdate-Script($server, $db, $user, $psw, $dacpacFilePath, $publishProfilePath, $outputFile)
{        
    #generate an update script
    & 'C:\Program Files (x86)\Microsoft SQL Server\110WorkingDAC\DAC\bin\SqlPackage.exe' /Action:Script /OutputPath:$outputFile /SourceFile:$dacpacFilePath /Profile:$publishProfilePath /TargetServerName:$server /TargetDatabaseName:$db /TargetUser:$user /TargetPassword:$psw

    #save generated script as deployment artifact
    New-OctopusArtifact $outputFile
}

可以将操作更改为publish,以避免生成脚本并立即部署。

希望有帮助。