VSTS:部署Azure SQL DACPAC会引发错误

时间:2016-08-09 07:23:21

标签: sql-server azure azure-sql-database azure-devops ms-release-management

我正在尝试使用“部署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.0255.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

1 个答案:

答案 0 :(得分:1)

我能够在同事的朋友的帮助下解决这个问题。正在更新的数据库有一个表,其列设置为NULL,DACPAC具有表的创建脚本,其列为NOT NULL,从而导致错误。我更改了现有的表,使列NOT NULL并且释放工作。