Azure DevOps搭建本地SQL Server运行SQL脚本流水线步骤咨询
Azure DevOps 搭建本地SQL脚本运行流水线完整步骤
一、准备SQL脚本工件
- 将需要执行的SQL脚本(如
schema_init.sql、data_sync.sql)整理到Git仓库的指定目录(比如/sql_scripts/),确保脚本命名顺序符合执行逻辑(例如先执行结构脚本再执行数据脚本) - 可选:在仓库根目录添加
README.md,标注脚本用途、依赖关系和执行顺序,便于后续维护
二、创建CI构建流水线(生成可部署工件)
- 进入Azure DevOps项目,依次点击流水线 > 新建流水线
- 选择代码源(如Azure Repos Git),选中对应的仓库和分支
- 选择空作业模板,开始自定义构建任务
- 添加以下任务:
- 复制文件任务:
- 源文件夹:
$(Build.SourcesDirectory)/sql_scripts - 目标文件夹:
$(Build.ArtifactStagingDirectory)/sql_scripts - 内容:
**/*.sql(匹配所有SQL脚本文件)
- 源文件夹:
- 发布构建工件任务:
- 发布路径:
$(Build.ArtifactStagingDirectory)/sql_scripts - 工件名称:
SQLScripts - 发布位置:Azure Pipelines
- 发布路径:
- 复制文件任务:
- 保存并运行流水线,确认
SQLScripts工件成功生成
三、创建CD发布流水线(部署到本地SQL Server)
- 进入发布 > 新建发布流水线,选择空作业模板
- 添加部署环境,命名为
LocalSQLServer,配置部署目标:- 推荐使用自托管代理(需提前安装并连接到Azure DevOps),确保代理机器能访问本地SQL Server
- 若使用微软托管代理,需确保本地SQL Server开放网络权限,允许代理所在IP访问
- 在
LocalSQLServer环境中添加以下任务:- 下载构建工件任务:
- 工件名称:
SQLScripts - 下载路径:
$(System.DefaultWorkingDirectory)/SQLScripts
- 工件名称:
- PowerShell脚本任务(或Cmd脚本任务,二选一):
- 脚本内容使用
sqlcmd工具批量执行SQL脚本,示例:# 按文件名顺序遍历执行所有SQL脚本 Get-ChildItem -Path "$(System.DefaultWorkingDirectory)/SQLScripts" -Filter *.sql | Sort-Object Name | ForEach-Object { # Windows身份验证方式 sqlcmd -S "你的本地SQL实例名" -E -d "目标数据库名" -i $_.FullName # SQL身份验证方式(敏感信息用变量组存储) # sqlcmd -S "你的本地SQL实例名" -U $(SQL_Username) -P $(SQL_Password) -d "目标数据库名" -i $_.FullName } - 注意:用户名、密码等敏感信息不要硬编码,需存入Azure DevOps变量组,通过
$(变量名)引用
- 脚本内容使用
- 可选:添加验证任务,比如用PowerShell查询数据库表,确认脚本执行结果符合预期
- 下载构建工件任务:
- 配置持续部署触发器:
- 进入触发器标签,开启持续部署触发器,关联之前创建的CI流水线,实现CI构建完成后自动触发CD部署
- 保存发布流水线,创建测试发布并验证执行结果
关键注意事项
- 自托管代理机器需安装
sqlcmd工具(随SQL Server客户端工具安装,或单独下载SQLCMD组件) - 确保代理机器有访问本地SQL Server的权限(防火墙开放端口、SQL Server登录权限配置)
- SQL脚本中避免使用交互式语句,
GO命令可正常使用,PRINT语句可用于输出执行日志
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

