通过 SSMS 将 Dacpac 部署到 Azure 失败:无法更改角色 db_owner

问题描述 投票:0回答:1

我正在尝试使用通过 Azure DevOps 管道创建的 dacpac 文件。我正在尝试使用 SQL Server Management Studio 19.1.56.0 中的升级数据层应用程序选项。

此步骤在升级数据层应用程序中逐步进行

当我尝试完成它时,出现错误

我尝试保存T-SQL脚本并注释掉负责删除用户的行和块,但由于某种原因它不起作用。

喜欢:

/*
GO
PRINT N'Dropping Role Membership [db_owner] for [blala]...';


GO
EXECUTE sp_droprolemember @rolename = N'db_owner', @membername = N'blala';


GO
IF @@ERROR <> 0
   AND @@TRANCOUNT > 0
    BEGIN
        ROLLBACK;
    END

IF OBJECT_ID(N'tempdb..#tmpErrors') IS NULL
    CREATE TABLE [#tmpErrors] (
        Error INT
    );

IF @@TRANCOUNT = 0
    BEGIN
        INSERT  INTO #tmpErrors (Error)
        VALUES                 (1);
        BEGIN TRANSACTION;
    END
*/

结束等...

有什么办法可以在升级时解决这个问题吗?或者 dacpac 文件只需要在 Azure DevOps 中重新创建(以及如何创建)?

sql-server azure-devops dacpac
1个回答
0
投票

以下是我通过 DACPAC 文件使用 DevOps 管道部署 SQL Server 的步骤,供您参考。

  1. 在VS中创建一个SQL Server DB项目(SSTD)并将我的DB导入到该项目中。您可以对项目中的数据库进行更改。

    右键单击项目 -> 导入 -> 数据库

  2. 在 Azure DevOps 中创建存储库并推送更改。

  3. 构建项目以获取管道中的 DACPAC 文件。

trigger:
- none

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: CopyFiles@2
  inputs:
    SourceFolder: '$(system.defaultworkingdirectory)'
    Contents: '**\bin\$(BuildConfiguration)\**'
    TargetFolder: '$(build.artifactstagingdirectory)'

- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(build.artifactstagingdirectory)'
    artifact: 'drop'
    publishLocation: 'pipeline'

  1. 创建经典发布管道以将 DACPAC 文件部署到目标数据库。
© www.soinside.com 2019 - 2024. All rights reserved.