我在TeamCity上使用Octopus将数据库部署到我们的生产环境,但它一直给出错误。Octopus Deploy.ps1 DACPAC部署失败
这里是Deploy.ps1代码:
$dbName = $OctopusParameters['DBName']
$dbUser = $OctopusParameters['AdminDBUsername']
$dbPassword = $OctopusParameters['AdminDBPassword']
$dbSource = $OctopusParameters['DBDataSource']
# Set params
if (! $dbName)
{
Write-Host "Missing required variable dbName" -ForegroundColor Yellow
exit 1
}
if (! $dbUser)
{
Write-Host "Missing required variable dbUser" -ForegroundColor Yellow
exit 1
}
if (! $dbPassword)
{
Write-Host "Missing required variable dbPassword" -ForegroundColor Yellow
exit 1
}
if (! $dbSource)
{
Write-Host "Missing required variable dbSource" -ForegroundColor Yellow
exit 1
}
# Add the DLL
# For 64-bit machines
Add-Type -path ((Get-Item -Path ".\" -Verbose).FullName + "\bin\Microsoft.SqlServer.TransactSql.ScriptDom.dll")
Add-Type -path ((Get-Item -Path ".\" -Verbose).FullName + "\bin\Microsoft.SqlServer.Dac.dll")
# Create the connection string
$d = New-Object Microsoft.SqlServer.Dac.DacServices ("data source=" + $dbSource + ";User Id = " + $dbUser + ";pwd=" + $dbPassword)
#Load the dacpac
$dacpac = ((Get-Item -Path ".\" -Verbose).FullName + "\DeployScripts\Database.dacpac")
$dacpacoptions = ((Get-Item -Path ".\" -Verbose).FullName + "\DeployScripts\publish.xml")
#Load dacpac from file & deploy to database
$dp = [Microsoft.SqlServer.Dac.DacPackage]::Load($dacpac)
#Read a publish profile XML to get the deployment options
$dacProfile = [Microsoft.SqlServer.Dac.DacProfile]::Load($dacpacoptions)
# Deploy the dacpac
$d.Deploy($dp, $dbName, $TRUE, $dacProfile.DeployOptions)
这里是发布配置的情况下,它的问题:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseName>MyDatabase</TargetDatabaseName>
<DeployScriptFileName>MyDatabase.sql</DeployScriptFileName>
<ProfileVersionNumber>1</ProfileVersionNumber>
<BlockWhenDriftDetected>True</BlockWhenDriftDetected>
<RegisterDataTierApplication>True</RegisterDataTierApplication>
</PropertyGroup>
</Project>
下面是我得到的错误:
异常使用“4”参数调用“部署”:
“部署计划基因期间发生错误配给。部署无法继续“
在Deploy.ps1:60字符:2
$ d.Deploy($ DP,$ DBNAME,$ True时,$ dacProfile.DeployOptions)
~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
CategoryInfo:NotSpecified:(:) [],ParentContainsErrorRecordException
FullyQualifiedErrorId:DacServicesException
有没有人有任何想法可以导致这一点?以及如何解决它?提前致谢!