章鱼部署 - SQL - 部署 DACPAC "Could not connect to database server."

Otcopus deploy - SQL - Deploy DACPAC "Could not connect to database server."

第一次尝试八达通部署。尝试将 dacpac 部署到机器上,但它一直失败。我不断收到以下错误:

Exception calling "Extract" with "4" argument(s): "Could not connect to database server." 
At C:\Octopus\Work191023152506-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 服务器 2017 并为 SQL 服务器 2016 安装了 dacframework。对于我尝试使用 . 的连接字符串,localhost,以及sqlmanagement studio中给定的服务器名称。我没有传递任何凭据,我正在使用集成安全性。我也传递了数据库名称。 我也关注了 this youtube 视频,只是没有使用项目变量。

根据我以前的经验,我只是使用 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 Server0WorkingDAC\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 以避免生成脚本并立即部署。

希望对您有所帮助。