模型比较
模型比较把两个模型的全部信息逐对象、逐属性对比,输出差异列表,并支持在结果页手工同步。它适用于模型差异分析、模型同步、版本冲突合并、模型与数据库对比等场景。与继承与转换的区别是:模型比较不生成新模型,而是在两个已有模型之间传递差异。
选择参与比较的模型
- 在顶部工具栏“模型”菜单下选择“模型比较”。
- 分别为左右两侧选择参与比较的模型。
- 设置参与比较的模型对象及属性、比较选项。
- 单击“比较”,得到比较结果。
图示为模型比较弹窗,注意左右两侧的模型来源可以不同,来源类型见下表。
| 模型来源 | 说明 | 典型用途 |
|---|---|---|
| 当前打开的模型 | 以客户端中正在编辑的模型作为一侧 | 与其他模型或数据库对照的本地基准 |
| 本地模型文件 | 选择本地保存的模型文件 | 与历史版本文件比较 |
| 模型库中的模型 | 选择在线模型库中的模型 | 与已签入版本比较 |
| 逆向数据库 | 连接数据库逆向后的结果参与比较 | 模型与数据库实际结构对照 |
设置比较范围与选项
“类型过滤”页决定本次比较的内容范围。例如只需要比较表属性的变化时,可取消勾选视图、文本、同义词、序列等对象类型,减少结果噪音。
“其他选项”页的配置项如下:
| 选项 | 作用 | 何时开启 |
|---|---|---|
| 忽略大小写 | 大小写不同但内容相同的值不视为差异 | 两侧来源的录入习惯不一致 |
| 依据合并来源进行比较 | 按对象来源比较,继承转换的模型、不同分支的模型即使改了名称也放在相同位置显示差异 | 比较同一模型的派生版本或不同分支 |
| 仅物理/仅逻辑的对象不参与比较 | 只存在于物理或只存在于逻辑模型的对象不纳入比较 | 逻辑与物理模型混合比较 |
| 根据模型数据类型转换表进行合并 | 按左侧模型的数据类型转换表比较;合并时按转换表转换后写入,而不是直接替换字符串 | 两侧数据库类型不同 |
读懂结果并同步
图示为比较结果页,看图重点在行颜色与对象之间的左右箭头。
- 红色表示该行信息存在差异,绿色表示某侧模型独有的内容。
- 单击差异对象中间的左右箭头同步该对象;单击左箭头即以右侧模型为准覆盖左侧模型。
- 单击最上方 model 行的箭头,可把全部差异合并到另一侧,使两侧模型完全一致。
- 按住 Ctrl 再单击合并箭头,可只把某侧独有的表合并到另一侧,而不合并字段。
结果页上方提供以下功能:
| 功能 | 作用 |
|---|---|
| 结果过滤 | 按左右侧模型独有内容、是否相同筛选显示结果 |
| 导出 Excel | 导出合并后的结果 |
| 左右侧模型脚本 | 查看针对另一侧模型的变化脚本 |
完成同步后单击“完成”保存同步内容。
注意事项
- 同步方向由所点箭头决定,执行前确认哪一侧是基准。
- 与数据库比较时,差异包含数据库实际结构,不要据此直接认定模型有误。
- 需要基于差异生成落库语句时,使用生成 DDL的变更脚本。


