数据库版本管理
本文档介绍了 NineData 的数据库版本管理功能,包括功能用途以及操作方式。帮助用户实现数据库结构的可视化变更追踪、自动版本归档,适用于数据库的持续交付与运维场景。
功能概述
NineData 数据库版本管理是一种非侵入式的数据库结构变更(DDL)管理方案。它通过自动化采集元数据、生成全局版本号、记录表结构快照,实现数据库结构的版本控制、历史追溯、差异对比及回滚操作。核心特点包括:
- 非侵入式:无需在目标库创建版本表。
- 自动化采集:通过定时任务或事件触发(如 SQL 任务执行后)捕获元数据,并每周一次自动化捕获全量元数据。
- 多场景支持:SQL 窗口、SQL 任务、结构设计与发布等多种变更来源,对于通过 NineData 以外的渠道执行的变更,也可以通过采集元数据(自动和手动),生成版本信息。
- 可视化对比:提供版本差异对比与 SQL 自动生成能力。
采集来源说明
NineData 数据库版本管理功能主要通过如下采集方式采集 DDL 变更。
采集来源 | 说明 |
---|---|
元数据采集 | 从 MySQL 的系统库(information_schema)中采集,适合所有途径的变更。由系统定时任务(每周一次)或用户手动触发。对于采集的对象,系统自动采集和手动采集有一定区别:
|
SQL 窗口 | 当用户在 NineData 的 SQL 窗口中执行涉及 DDL 的语句(如建表、加列、改索引等)后,系统自动识别并触发采集。 |
SQL 任务 | 在 NineData 平台内提交的 SQL 任务,若任务包含 DDL 语句,则系统在任务完成后自动采集变更结构。 |
结构设计与发布 | 通过平台内的结构设计与发布模块提交的结构变更发布流程,任务完成后系统触发采集。 |
前提条件
- 数据库类型为 MySQL。
- 数据库数量小于等于 10 个,表的总数小于等于 2000 个。
使用限制
- 数据库 DevOps 专业版用户,最高可以采集 20 个数据库版本。
- 数据库 DevOps 企业版用户,最高可以采集 200 个数据库版本。
开启数据库版本管理
NineData 只会对已开启了版本管理的数据源进行元数据采集与版本记录。
- 登录NineData 控制台。
- 在左侧导航栏,单击 > 。
- 在页签下,开启目标数据源右侧列下的开关,即可开启数据库版本管理。
查看采集的 DDL 变更
对于 NineData 已经采集完成的 DDL,可随时查看详情 SQL。如果有多个版本,可以进行两个版本之间的 SQL 差异对比。
- 登录NineData 控制台。
- 在左侧导航栏,单击 > 。
- 在页签下,单击目标数据源右侧列下的。
- 在页面,单击目标数据库右侧列下的。
- 单击目标版本号右侧列下的即可查看具体的 SQL 语句。同时支持如下操作:
- 选中,可以和上一个版本(如有)的 SQL 语句进行对比。
- 选中,展示当前版本涉及到的 DDL 变更(如有)。默认情况下显示当前库的全镜像快照。
- 单击
,将 SQL 语句拷贝到剪贴板,可粘贴至其他位置执行。
- 单击
,生成下载任务,并从进行下载。如何下载 SQL 文件,请参见下载 SQL 文件。
生成变更 SQL
生成变更 SQL 功能用于对比两个数据库结构版本的差异,自动生成从老版本迁移到新版本所需的 DDL 语句。该功能支持表结构级的精确比对,并输出可直接执行的变更脚本,帮助用户快速完成结构升级操作,避免人工编写和遗漏。
- 登录NineData 控制台。
- 在左侧导航栏,单击 > 。
- 在页签下,单击目标数据源右侧列下的。
- 在页面,单击目标数据库右侧列下的。
- 选中两个目标版本左侧的复选框,单击页面右上角的。您可以通过、采集来源、表名、版本号、标签等方式快速查找数据库版本。
- 在页面,单击页面上方的。如果两个版本有区别,则会自动生成 SQL 语句。您可以进行如下操作:,或者单击
图标生成下载任务,并从进行下载。如何下载 SQL 文件,请参见下载 SQL 文件。
- 单击 窗口下方的,对目标数据源发起变更。
- 单击
,将 SQL 语句拷贝到剪贴板,可粘贴至其他位置执行。
- 单击
,生成下载任务,并从进行下载。如何下载 SQL 文件,请参见下载 SQL 文件。
生成回滚 SQL
生成回滚 SQL 功能用于将数据库结构从当前版本恢复到指定的历史版本。系统通过对比两个版本的差异,自动生成逆向 DDL 脚本,便于在发布失败或出现问题时快速还原数据库结构,保障系统的稳定性与可恢复性。
- 登录NineData 控制台。
- 在左侧导航栏,单击 > 。
- 在页签下,单击目标数据源右侧列下的。
- 在页面,单击目标数据库右侧列下的。
- 选中两个目标版本左侧的复选框,单击页面右上角的。您可以通过、采集来源、表名、版本号、标签等方式快速查找数据库版本。
- 在页面,单击页面上方的。如果两个版本有区别,则会自动生成回滚 SQL 语句。
- 单击 窗口下方的,对目标数据源发起回滚。
- 单击
,将 SQL 语句拷贝到剪贴板,可粘贴至其他位置执行。
- 单击
,生成下载任务,并从进行下载。如何下载 SQL 文件,请参见下载 SQL 文件。
为数据库版本添加标签
数据库版本号由系统自动生成,采用时间戳或唯一标识,缺乏语义信息,不易人工识别。因此可以为某个具有特殊意义的版本手动添加标签,以提高版本可读性与管理效率。
- 登录NineData 控制台。
- 在左侧导航栏,单击 > 。
- 在页签下,单击目标数据源右侧列下的。
- 在页面,单击目标数据库右侧列下的。
- 单击目标版本右侧列下的
图标,并输入标签名称,然后单击
。
下载 SQL 文件
数据库版本管理功能提供下载中心,用于集中管理和导出版本管理相关的 SQL 文件,包括变更 SQL、回滚 SQL 以及全量结构建表语句。用户可在此处一键下载所需版本的脚本,用于备份、审核或线下执行,提升版本交付与协作效率。
注意事项
- 下载任务生成后,保留一个月时间。过期则无法继续下载,需要重新生成下载任务。
- 下载次数到达 10 次后,链接将失效。如需继续下载,需要重新生成下载任务。
操作步骤
- 登录NineData 控制台。
- 在左侧导航栏,单击 > 。
- 单击页签,单击目标下载任务右侧列下的。