数据库 CI/CD 实践:如何管理多环境 SQL 变更与发布流程
一次新版本发布,从开发环境走到生产环境,通常需要经历开发、测试、预发布、生产等等多个阶段。当数据库变更越来越多,除了自动检查和执行 SQL,环境一多,问题也随之而来:
- SQL 是否会在传递过程中被改动?
- SQL 变更哪个环境执行过了?
- 多个项目发布流程该如何统一管理?
针对这些问题,CloudDM 新版本推出了数据库 CI/CD 「发布流编排」功能,同时也支持了 GitLab 作为发布源。
什么是发布流编排?
从流程上看,一次数据库变更无非是从开发环境逐步走向生产环境,流程似乎并不复杂,但在实际执行过程中,往往会受到以下问题的影响:
- 流程复杂:多环境、多环节协同,发布进度难以统一管理。
- 权限混乱:发起、审批和执行边界不清,责任难以落实。
- SQL 变更管理不规范:依赖人工传递,容易出现版本不一致且难以追溯。
发布流编排,是将原本相互独立的数据库发布流程,按照真实的交付顺序组织成一条完整链路。
使用 CloudDM 发布流编排功能,根据实际发布顺序组成多级拓扑,每个发布流节点均可独立配置负责人、审核规则和执行方式。上游变更执行成功后,SQL 将自动传递至下游,无需人工重复提交,实现发布流程、权限和 SQL 变更的统一管理。

SQL 工单全流程追踪
CloudDM 4.1.0 优化了 SQL 工单,可以查看 SQL 识别、行为分析、安全规则检查和执行阶段的进度、统计、日志及失败原因。
在工单详情中可以看到:创建 → 分析 → 审批 → 确认 → 执行。每个步骤都会显示相应的状态、处理时间和处理人。
进入「分析」步骤后,还可以继续查看 SQL 的行为、规则和数据分析结果。例如,可以看到本次变更包含多少条 SQL、涉及多少个数据库对象、产生了多少次操作。安全规则检查结果、各项处理耗时和失败信息也会直接显示在页面中。

当数据库变更进入执行阶段后,还可以查看具体 SQL 的执行状态和相关日志。

当一项数据库变更出现异常时,可以先确定问题发生在哪个步骤,再结合分析结果、规则检查、错误信息和执行日志继续排查,定位后可直接在详情页对失败节点发起重试。
支持直接上传 SQL 文件
除了通过代码仓库获取 SQL 变更,CloudDM CI/CD 也支持手动提交 SQL。需要发布数据库变更时,可以直接在编辑器中输入 SQL,也可以选择直接上传 .sql 文件导入,再触发对应的数据库变更。

支持私有化 GitLab
除了直接上传 SQL 文件,CloudDM 也支持通过 GitLab、Gitee 等代码仓库管理数据库变更。CloudDM 4.1.0 新增了对私有化 GitLab 的支持。企业内部部署的 GitLab 可以直接作为 CI/CD 发布源,目前支持 HTTP / HTTPS、非标准端口、子路径部署,以及 Push、Merge Request Webhook。
创建发布流时,可以选择 GitLab 作为变更源,并配置代码仓库、目标分支和脚本路径,同时指定需要发布的数据库、实例和 Schema。


快速体验
CloudDM 是一款开源数据库管理平台,采用 Apache 2.0 协议。你可以自行部署、修改和二次开发,也可以将其部署到自己的生产环境中。CloudDM 支持单机、集群、Docker、Kubernetes 等多种部署方式。使用 Docker 可以直接启动:
国内镜像
docker run -d --name cgdm-alone \
--restart always \
-p 8222:8222 \
-v cgdm_alone_conf:/root/cgdm/alone/conf \
-v cgdm_alone_logs:/root/cgdm/alone/logs \
-v cgdm_alone_data:/root/cgdm/alone/data \
-v cgdm_alone_mysql_data:/var/lib/mysql \
cloudcanal-registry.cn-shanghai.cr.aliyuncs.com/clougence/cgdm-alone:latest
海外镜像
docker run -d --name cgdm-alone \
--restart always \
-p 8222:8222 \
-v cgdm_alone_conf:/root/cgdm/alone/conf \
-v cgdm_alone_logs:/root/cgdm/alone/logs \
-v cgdm_alone_data:/root/cgdm/alone/data \
-v cgdm_alone_mysql_data:/var/lib/mysql \
bladepipe/cgdm-alone:latest
启动完成后,浏览器访问:http://localhost:8222
更多信息:
- 官网:https://www.cdmgr.com/
- 文档:https://www.cdmgr.com/docs/intro/product_intro
- GitHub:https://github.com/ClouGence/open-cdm
- Gitee:https://gitee.com/clougence/open-cdm
如果 CloudDM 对你有帮助,欢迎到 GitHub 或 Gitee 为项目点一个 Star,我们将会非常感激。也欢迎使用之后把反馈告诉我们。

浙公网安备 33010602011771号