You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure DevOps实现Azure DB for PostgreSQL自动化部署与脚本执行

结论

可以实现,无需任何第三方工具,仅依赖Azure DevOps内置官方任务和Azure原生能力即可完成Azure DB for PostgreSQL(单服务器)的全量、增量脚本自动化执行,覆盖数据库创建、表结构变更、函数/索引调整等所有DDL/DML操作需求。

前置准备工作
  • 在Azure门户为目标PostgreSQL单服务器配置防火墙规则,放行Azure DevOps代理的IP段:使用微软托管代理则放行对应区域的Azure云服务IP段,使用自托管代理则直接放行代理的出口IP
  • 准备PostgreSQL访问凭据,可使用管理员账号密码或具备对应权限的Azure AD服务主体,将凭据存储到Azure DevOps的保密变量组中,禁止明文硬编码
  • 将所有SQL脚本按执行顺序存放到代码仓库,建议按初始化脚本、增量变更脚本分类存储,脚本命名带上序号控制执行顺序,例如001_create_database.sql、002_create_user_table.sql
构建流水线配置

构建流水线负责将SQL脚本打包为可复用的制品,配置步骤如下:

  • 新建构建流水线,关联存储SQL脚本的代码仓库
  • 添加复制文件任务,将所有SQL脚本复制到构建输出目录
  • 添加发布构建工件任务,将脚本目录发布为流水线制品,命名为postgresql-scripts
  • 运行一次构建验证制品可正常生成
发布流水线配置

发布流水线负责拉取构建制品、连接PostgreSQL并执行脚本,有两种官方实现方案可选:

方案1:使用官方Azure Database for PostgreSQL部署任务(操作更简单)

  • 新建发布流水线,关联上一步生成的postgresql-scripts制品作为发布源
  • 按需配置开发、测试、生产等多环境部署阶段
  • 在阶段的代理作业中添加官方Azure Database for PostgreSQL 部署任务,按提示填写以下配置即可:
    • PostgreSQL服务器地址
    • 目标数据库名
    • 用户名、密码(从保密变量组读取)
    • 待执行的SQL脚本路径(从制品中选择)

方案2:使用Azure CLI + psql客户端(适合自定义逻辑场景)

  • 新建发布流水线并关联制品,步骤同方案1
  • 添加内置Azure CLI任务,在内联脚本中按顺序执行以下操作:
    1. 安装PostgreSQL客户端(Ubuntu托管代理执行:apt update && apt install -y postgresql-client)
    2. 从变量组读取连接凭据,按顺序遍历执行所有SQL脚本,执行命令参考:
    psql "host=<pg服务器地址> port=5432 dbname=postgres user=<管理员账号> password=<管理员密码> sslmode=require" -f <脚本文件路径>
    
注意事项
  • 所有变更脚本必须先在测试环境验证通过后再应用到生产环境
  • 生产环境执行变更前建议添加备份步骤,通过Azure CLI调用PostgreSQL备份接口生成临时备份,出现异常可快速回滚
  • 若需实现增量变更避免重复执行脚本,可在数据库中新增schema_migrations表,记录已执行的脚本名称,每次执行前校验,仅运行未执行过的脚本

内容的提问来源于stack exchange,提问作者S2S2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:36:06