介绍
发布应用到生产环境时,通常需要分别处理数据库变更和应用发布。数据库变更可能需要向 DBA 发起审批,而应用发布则由现有 CI/CD 工具执行。CloudDM 可以将两个过程串联起来,帮助团队在同一交付链路中完成数据库变更检查、审批、执行和后续应用发布。

- CloudDM 支持通过 WebHook、远程请求或控制台触发数据库变更。
- 数据库变更执行完成后,CloudDM 可以回调外部 CI/CD 系统,继续执行后续交付任务。
- SQL 在执行前可以依次经过安全检查和工单审批。
核心概念
- 变更流:定义变更来源、目标数据库、触发方式、执行策略和通知方式,用于持续管理数据库变更。
- 变更:数据库 CI/CD 的最小执行单位。普通变更依次经过 递交、SQL 审核、工单审批 和 执行;未发现增量内容时可以直接关闭,构建快照时则进入快照变更分支。
工作原理
数据库 CI/CD 包含 源端变更仓库 和 目标端数据库 两个端点,通过 变更流 将仓库中的增量 SQL 应用到目标数据库。
变更流被触发后,CloudDM 按以下阶段处理变更:
- 递交:从代码仓库获取 SQL 内容,并与已有快照对比,确定增量 SQL。
- SQL 审核:根据目标数据库关联的安全规范检查增量 SQL。安全规范设置请参考启用规范。
- 工单审批:根据目标数据库所在环境关联的变更工单流程发起审批。具体配置请参考工单设置。
- 执行:按照变更流的执行策略,将审批通过的 SQL 应用到目标数据库。
约束限制
CloudDM 数据库 CI/CD 目前有以下使用限制:
- 保存 SQL 变更的代码仓库目前支持 Gitee。
- 仓库中可以包含多个 SQL 文件,执行顺序由
文件路径 + 文件名的排序结果决定。 - SQL 文件必须以
.sql结尾,其他类型的文件会被忽略。 - 新增 SQL 需要追加到已有或新增
.sql文件的末尾,文件其他位置的变化会被忽略。 - 每个变更流中只允许存在一个处理中的变更。
- 由同一仓库、分支、目标数据源和数据库或 Schema 组成的变更流,在启用状态下具有唯一性。
