【问题标题】:VSTS: Deploy Azure SQL DACPAC Release Management throwing an errorVSTS:部署 Azure SQL DACPAC 发布管理引发错误
【发布时间】:2016-07-06 12:30:03
【问题描述】:

我正在尝试为我的 Azure SQL 数据库设置 VSTS 版本管理。我正在使用“部署 Azure SQL DACPAC”任务。 dacpac 文件的路径设置为

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

虽然数据库正确更新,但最终我收到一个错误,导致任务失败。

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

看起来所有更新都应用于数据库,但任务仍然抛出错误。在下方登录

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.

存储过程代码

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

【问题讨论】:

    标签: azure-sql-database azure-devops ms-release-management azure-pipelines-release-pipeline


    【解决方案1】:

    这通常是由于您的 SQL 项目的“目标平台”与您正在部署的 SQL Server 版本不匹配造成的。请检查您的 SQL 项目的“目标平台”是否与 Azure SQL 数据库版本匹配:

    【讨论】:

    • 在 SQL 项目和 Azure SQL 中版本设置正确。
    • @BipinDas 能否在发布定义中添加一个名为“system.debug”的变量并将值设置为“true”,然后启动发布并共享日志?
    • @BipinDas 您是否在本地计算机上测试过您的 SQL 项目?错误似乎在创建表的项目中。
    • 项目中没有错误。我可以使用模式比较来更新我的本地数据库。
    • @BipinDas 你能分享创建“[dbo].[usp_Products_GetById]”的代码,以便我可以在我身边尝试吗?
    【解决方案2】:

    在我的特定情况下,发生此错误是因为在我的数据库项目中,在一个表的初始化脚本中,我试图为非数字列设置标识规范。

    因此,如果其他解决方案不起作用,请检查您的所有脚本是否正常运行(使用 SQL Management Studio 或 Visual Studio)。

    VSTS 中的错误没有捕获 SQL 错误,太糟糕了...

    【讨论】:

    • 将此更改为已接受的答案。就像我在回答中所说的那样,我首先使用的是 FQDN。但是脚本错误可能是第一种情况下错误的原因。
    【解决方案3】:

    我尝试手动设置防火墙规则并仅使用服务器名称而不是 FQDN。然后我再次尝试了 FQDN,它成功了。所以不知道为什么它失败了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 2016-09-08
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 2019-11-05
      相关资源
      最近更新 更多