我正在尝试使用“部署Azure SQL DACPAC”为Azure SQL数据库设置VSTS版本。我收到以下错误(使用system.debug = true
)
2016-08-09T06:23:08.4767615Z Publishing to database 'DBName' on server 'DBServer'.
2016-08-09T06:23:08.6821649Z Initializing deployment (Start)
2016-08-09T06:23:24.7312223Z Initializing deployment (Failed)
2016-08-09T06:23:24.7684904Z ##[debug]System.Management.Automation.RemoteException: * Could not deploy package.
2016-08-09T06:23:24.7794888Z ##[debug][Azure RDFE Call] Deleting firewall rule 7d14da9b-4c86-4ed6-a3f3-d238a3143c39 on azure database server: DBServer
2016-08-09T06:23:25.9730592Z ##[debug][Azure RDFE Call] Firewall rule 7d14da9b-4c86-4ed6-a3f3-d238a3143c39 deleted on azure database server: DBServer
2016-08-09T06:23:25.9840576Z ##[error]System.Management.Automation.ParentContainsErrorRecordException: * Could not deploy package.
以下是发布资料 -
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseName>SocialRecruiting</TargetDatabaseName>
<DeployScriptFileName>Database.sql</DeployScriptFileName>
<TargetConnectionString>Data Source=DBServer;Persist Security Info=True;User ID=username;Pooling=False</TargetConnectionString>
<ProfileVersionNumber>1</ProfileVersionNumber>
<ScriptDatabaseOptions>True</ScriptDatabaseOptions>
<BlockOnPossibleDataLoss>True</BlockOnPossibleDataLoss>
<CreateNewDatabase>False</CreateNewDatabase>
</PropertyGroup>
</Project>
我在这里读了几个类似的帖子,一个在这里,一个在另一个论坛上。他们建议手动添加IP范围(0.0.0.0
到255.255.255.255
)并使用友好的服务器名称而不是FQDN,但这不起作用。
我可以通过Visual Studio手动发布它,没有任何问题。
修改
我已经尝试过以下帖子中的建议
VSTS: Deploy Azure SQL DACPAC Release Management throwing an error
Azure SQL DACPAC task keeps failing
编辑 - 完整的DACPAC日志
http://pastebin.com/bWvTi5Vx
答案 0 :(得分:1)
我能够在同事的朋友的帮助下解决这个问题。正在更新的数据库有一个表,其列设置为NULL,DACPAC具有表的创建脚本,其列为NOT NULL,从而导致错误。我更改了现有的表,使列NOT NULL并且释放工作。