1
votes

I am trying to setup VSTS release management for my Azure SQL database. I am using the "Deploy Azure SQL DACPAC" task. Path to the dacpac file is setup as

$(System.DefaultWorkingDirectory)\**\*.dacpac

While the database updates correctly I get an error in the end that causes the task to fail.

"System.Management.Automation.ParentContainsErrorRecordException: *** Could not deploy package"

It looks like all the updates are applied to the database but the task still throws an error. Log below

2016-07-07T07:50:44.6118522Z Publishing to database 'mydb' on server 'myserver.database.windows.net'.
2016-07-07T07:50:45.7587428Z Initializing deployment (Start)
2016-07-07T07:50:52.5825349Z Initializing deployment (Complete)
2016-07-07T07:50:52.5835341Z Analyzing deployment plan (Start)
2016-07-07T07:50:52.7085342Z Analyzing deployment plan (Complete)
2016-07-07T07:50:52.7085342Z Updating database (Start)
2016-07-07T07:50:53.7000358Z Altering [dbo].[usp_Products_List]...
2016-07-07T07:50:53.7170379Z Creating [dbo].[usp_Products_GetById]...
2016-07-07T07:50:53.8745919Z An error occurred while the batch was being executed.
2016-07-07T07:50:53.8855912Z Updating database (Failed)
2016-07-07T07:50:53.9105905Z ##[debug]System.Management.Automation.RemoteException: *** Could not deploy package.
2016-07-07T07:50:53.9225921Z ##[debug][Azure RDFE Call] Deleting firewall rule 260745ad-327c-45ae-bcb8-5c6bb0e43797 on azure database server: myserver
2016-07-07T07:50:55.9753040Z ##[debug][Azure RDFE Call] Firewall rule 260745ad-327c-45ae-bcb8-5c6bb0e43797 deleted on azure database server: myserver
2016-07-07T07:50:55.9934761Z ##[error]System.Management.Automation.ParentContainsErrorRecordException: *** Could not deploy package.

Stored Procedure Code

CREATE PROCEDURE [dbo].[usp_Products_GetById]
    @pId int
AS
    SET NOCOUNT ON;

SELECT [id]
      ,[description]
      ,[created_dt]
      ,[last_mod_dt]
      ,[active]
  FROM [dbo].[Products]
  WHERE [id] = @pId
GO
3

3 Answers

1
votes

This is usually caused by the "Target platform" of your SQL project does not match the SQL Server version your are deploying. Please check if the "Target platform" of your SQL project matches the Azure SQL database version: enter image description here

0
votes

I tried manually setting the firewall rule and use just the server name rather than the FQDN. Then I tried the FQDN again and it worked. So not sure why it was failing.

0
votes

In my particular case, this error happened because in my database project, in one of the init scripts for a table, I was trying to set the identity specification for a non-numeric column.

So, check that all your scripts run without errors (using SQL Management Studio or Visual Studio) if the other solutions don't work.

Too bad that the error in VSTS doesn't capture the SQL error...