我正在尝试使用通过 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 中重新创建(以及如何创建)?
以下是我通过 DACPAC 文件使用 DevOps 管道部署 SQL Server 的步骤,供您参考。
在VS中创建一个SQL Server DB项目(SSTD)并将我的DB导入到该项目中。您可以对项目中的数据库进行更改。
构建项目以获取管道中的 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'
选择上面的构建管道作为工件。
使用SQL Server 数据库部署任务进行部署。 (对于 Azure SQL,您可以使用 Azure SQL 数据库部署 任务。对于 Azure SQL 数据仓库,您可以使用 Azure SQL 数据仓库部署 任务。)
确保您用于登录的用户有足够的权限来进行您在 SSTD 项目中定义的更改。