应用元数据导出功能介绍
一、工具定位
Section titled “一、工具定位”本配置文件是应用管理系统的元数据导出/还原工具的规则定义文件。工具以”规则驱动”的方式,将数据库中沉淀的业务元数据(表结构、字段定义、数据字典、菜单、工作流、注入点等)按需导出,用于:
- 环境间迁移:开发 → 测试 → 生产的元数据同步,保证各环境表结构与配置一致;
- 备份还原:导出后可完整还原业务数据结构与配置,支持故障恢复;
- 二次开发交付:将新增/修改的元数据打包,交付到其他环境增量生效。
整个文件由「全局配置 config」与「导出规则 rules」两部分组成,一条规则对应一类导出能力。
二、全局配置(config)
Section titled “二、全局配置(config)”略
三、导出规则逐项介绍
Section titled “三、导出规则逐项介绍”配置文件共定义 11 种导出规则类型,每条规则通过 type 区分能力,通过对应参数指定导出范围。
规则一:structure-collections_export
Section titled “规则一:structure-collections_export”导出指定业务表的完整建表语句以及 collections 表里面的相关数据和 fields 字段
核心综合导出规则。一次导出三层数据,可对指定业务表做”一键完整还原”:
- 物理表结构:完整建表语句(DDL,含字段、索引、约束);
- 元数据记录:
collections表(系统元数据仓库)中该表对应的相关数据; - 字段定义:
fields表中该表所有字段的定义信息。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
tables | 数组 | 需要导出的业务表名列表 |
| 适用场景: CRM 核心业务模块的整体迁移与同步;环境重建(开发/测试/生产)时完整还原业务表。 |
当前状态: ✅ 启用
规则二:structure
Section titled “规则二:structure”导出指定表的完整建表语句
纯结构导出规则,仅导出表的 DDL(建表语句),不包含元数据与业务数据。用于只关心物理表结构、不涉及配置数据的场景。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
tables | 数组 | 需要导出的表名列表 |
适用场景: 仅同步表结构(如表变更上线、空库建表);与核心规则配合补齐不在业务范围内的关联表结构。
当前状态: ✅ 启用
规则三:full_data
Section titled “规则三:full_data”导出指定的全量数据表和符合模式的表
全量数据导出规则,用于按需导出整表业务数据。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
tables | 数组 | 指定要导出全量数据的表名列表 |
patterns | 数组 | 表名匹配模式(正则/通配),符合模式的表批量导出 |
使用方式: 当前为预留规则。需要时在 tables 中填入表名,或在 patterns 中填入表名模式,即可批量导出全量数据。
当前状态: ⏸️ 预留(未配置,暂不生效)
规则四:fields_export
Section titled “规则四:fields_export”一键导出指定业务表的 fields 字段
字段定义导出规则,只导出指定业务表的字段定义(fields),不导出表结构 DDL 与元数据记录。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
names | 数组 | 需要导出字段的业务表名列表 |
使用方式: 当前为预留规则。在 names 中填入业务表名后,即可只导出这些表的字段定义,适合单独同步字段配置。
当前状态: ⏸️ 预留(未配置,暂不生效)
规则五:collections_export
Section titled “规则五:collections_export”一键导出指定业务表及其 fields 字段
集合导出规则,能力与规则一(structure-collections_export)重叠。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
names | 数组 | 需要导出的业务表名列表 |
说明: 该导出能力已合并进 structure-collections_export 规则,为避免重复导出,本条规则留空停用,不再单独维护。
当前状态: 🚫 停用(能力已合并,可忽略)
规则六:dict_export
Section titled “规则六:dict_export”一键导出指定数据字典类型及其层级结构
数据字典导出规则,导出各字典的枚举项、取值及父子层级关系,用于还原下拉选项、状态枚举、分类树等配置数据。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
typeCodes | 数组 | 需要导出的字典类型编码列表 |
注意:每次导出数据字典类型时,DictCatalog必须填写在内,否则会出现没有类型的情况。 | ||
| 适用场景: 还原系统所有下拉选项与状态枚举;同步字典的分类层级结构。 |
当前状态: ✅ 启用
规则七:menu_export
Section titled “规则七:menu_export”通过 title 自动导出菜单及关联数据
菜单导出规则,按菜单标题自动匹配,并带出该菜单的关联数据(菜单树结构、页面配置、按钮权限等),无需手动指定菜单 ID。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
filter | 字符串 | 菜单筛选条件(当前为 title = '菜单1、菜单2') |
适用场景: 按业务模块整体迁移菜单;同步页面入口与权限关联配置。
当前状态: ✅ 启用
规则八:workflow_export
Section titled “规则八:workflow_export”一键导出指定工作流及其关联表
工作流导出规则,按工作流唯一标识导出工作流定义,并连带导出其依赖的关联表数据,保证工作流还原后可直接使用。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
workflowKeys | 数组 | 工作流唯一标识列表 |
适用场景: 审批流 / 状态流转等配置的跨环境还原;业务流程配置随版本一起迁移。
当前状态: ✅ 启用
规则九:inject_export
Section titled “规则九:inject_export”一键导出指定注入点及其关联表
注入点导出规则。注入点是系统提供的业务扩展挂载点(如保存前/后、审核前/后的自定义逻辑位置),本规则用于导出注入点定义及其关联表数据。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
injectIds | 数组 | 注入点 UID 列表 |
使用方式: 需要时在 injectIds 中填入注入点 UID,即可导出对应注入点及其关联配置。如页面注入、列表列注入、详情页面注入等。
当前状态: ✅ 启用
规则十:inject_fields_export
Section titled “规则十:inject_fields_export”一键导出指定注入字段的 fields 数据
注入字段导出规则,通过反向键(reverseKeys)定位并导出注入扩展字段的字段定义。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
reverseKeys | 数组 | 注入字段的反向关联标识列表 |
适用场景: 单独同步扩展注入字段的定义配置;与注入点配套,还原扩展功能。
当前状态: ✅ 启用
规则十一:table_fields_export
Section titled “规则十一:table_fields_export”导出指定表中的指定字段的 schema 以及相关规则,还原时执行增加操作
表字段规则导出规则,与全量还原不同,此规则为增量模式:仅导出所选字段的结构定义与规则,导入还原时对目标表执行**字段增加(ADD COLUMN)**操作,不影响已有字段与数据。
配置参数:
| 参数 | 类型 | 说明 |
|---|---|---|
tables | 数组(对象) | 指定表及其字段规则配置(当前为空) |
使用方式: 当前为预留规则。在 tables 中配置目标表及其字段后,即可对存量表做安全的增量字段扩展。
适用场景: 向生产库存量表灰度扩展新字段;按版本增量下发字段变更。
当前状态: ⏸️ 预留(未配置,暂不生效)
四、规则启用状态汇总
Section titled “四、规则启用状态汇总”| 序号 | 规则类型 | 功能 | 状态 |
|---|---|---|---|
| 1 | structure-collections_export | 结构+元数据+字段综合导出 | ✅ 启用 |
| 2 | structure | 纯建表语句导出 | ✅ 启用 |
| 3 | full_data | 全量数据导出 | ✅ 启用 |
| 4 | fields_export | 业务表字段导出 | ⏸️ 预留 |
| 5 | collections_export | 集合导出 | 🚫 停用(已合并) |
| 6 | dict_export | 数据字典导出 | ✅ 启用 |
| 7 | menu_export | 菜单导出(客户管理) | ✅ 启用 |
| 8 | workflow_export | 工作流导出 | ✅ 启用 |
| 9 | inject_export | 注入点导出 | ✅ 启用 |
| 10 | inject_fields_export | 注入字段导出 | ✅ 启用 |
| 11 | table_fields_export | 表字段规则增量导出 | ⏸️ 预留 |
五、典型使用场景
Section titled “五、典型使用场景”- 全量业务迁移:使用
structure-collections_export一次性导出 24 张核心业务表(结构+元数据+字段),配合dict_export、menu_export、workflow_export完成某业务模块的整体迁移; - 增量字段下发:使用
table_fields_export只导字段 schema,还原时执行增加操作,安全地为生产库存量表补字段; - 配置专项同步:单独同步数据字典(
dict_export)、菜单(menu_export)、审批工作流(workflow_export)或注入扩展(inject_fields_export); - 选择性裁剪:所有规则均可通过置空列表(
tables/names/patterns/injectIds等),做到”需要什么导什么”。
六、配置文件示例
Section titled “六、配置文件示例”{ "rules": [ { "type": "structure-collections_export", "comment": "导出指定的业务表的完整建表语句以及collections表里面的相关数据和fields字段", "tables": [ "tab1", "tab2" ] }, { "type": "structure", "comment": "导出指定的业务表的完整建表语句-不用写", "tables": [] }, { "type": "full_data", "comment": "导出指定的全量数据表和符合模式的表-暂且用不到", "tables": [ "tab1", "tab2" ], "patterns": [ "tab1_20230801", "tab2_20230801" ] }, { "type": "fields_export", "comment": "一键导出指定业务表的fields字段", "names": [] }, { "type": "collections_export", "comment": "一键导出指定业务表及其fields字段", "names": [] }, { "type": "dict_export", "comment": "一键导出指定数据字典类型及其层级结构", "typeCodes": [ "DictCatalog", "TypeCode1", "TypeCode2" ] }, { "type": "menu_export", "comment": "通过title自动导出菜单及关联数据 ", "filter": "title = '菜单1、菜单2'" }, { "type": "workflow_export", "comment": "一键导出指定工作流及其关联表", "workflowKeys": [ "key1", "key2" ] }, { "type": "inject_export", "comment": "一键导出指定注入点及其关联表(查询页面html以及层级关系)", "injectIds": [ "inject1", "inject2" ] }, { "type": "inject_fields_export", "comment": "一键导出指定注入字段fields数据", "reverseKeys": [ "key1", "key2" ] }, { "type": "table_fields_export", "comment": "导出指定表中的指定字段的scheam以及相关规则,还原时执行增加操作,废弃身份表", "tables": [] } ]}