如何合并多个Navicat模型文件

作者:袖梨 2026-09-01

Navicat 不支持直接合并 .ncm 文件,必须通过导出 SQL→手动去重→导入新模型实现;需注意保留 COMMENT、处理同名表冲突、启用关系线显示、补全注释及调整布局。

Navicat 本身不支持直接合并多个 .ncm 模型文件——你不能像拖入多个 SQL 文件那样,把几个模型文件一起“导入”或“叠加”。所有合并操作必须手动完成,本质是结构整合而非文件拼接。

为什么不能用“打开多个模型再复制粘贴”?

Navicat 的模型编辑器(.ncm)不支持跨模型的表/关系拖拽复制。即使同时打开两个模型窗口,也无法将一个模型里的表直接拖进另一个;右键菜单里没有“复制表结构”或“导入对象”选项。强行截图、导出 SQL 再导入,会丢失关系线、布局、注释、样式等元信息,只剩基础 DDL。

真正可行的合并路径:导出 SQL → 手动去重 → 导入新模型

这是目前唯一能保留关键设计语义(外键、索引、字段注释)的实操方式:

  1. 对每个 .ncm 模型,右键 → “导出 SQL 脚本” → 勾选 CREATE TABLECOMMENTFOREIGN KEY,保存为 model_a.sqlmodel_b.sql
  2. 用文本工具(VS Code / Notepad++)打开所有 SQL 文件,**手动删除重复的 CREATE DATABASEUSE 语句**;只保留第一个 USE,其余删掉
  3. 检查各脚本中是否有同名表但字段冲突(如 user.id 一个是 INT,另一个是 BIGINT),这类冲突必须人工裁决,不能靠工具自动合并
  4. 把清理后的 SQL 合并成一个文件(如 merged_model.sql),在 Navicat 中新建空白模型 → 右键模型 → “从 SQL 文件正向工程”

合并后必调的三个设置

刚导入的模型往往“看起来对,但用不了”:

  1. 外键关系线默认不显示:右键模型画布 → “显示关系线”(否则表之间看似孤立)
  2. 字段注释丢失:SQL 导出时若没勾选 COMMENT,导入后所有 COMMENT 字段为空;重新导入前务必确认导出选项
  3. 布局混乱:正向工程生成的表堆叠在左上角。需手动拖拽排布,或使用 “自动布局”(右键画布 → “自动布局”),但复杂关系下仍需人工微调

模型合并不是技术问题,而是设计协调问题——不同人画的模型,命名习惯、主键策略、外键方向可能不一致。最耗时的从来不是操作步骤,而是逐个比对 user_idVARCHAR(32) 还是 BIGINT UNSIGNED,以及确认 order.status 的枚举值是否兼容。别跳过这一步,否则同步到数据库时会卡在 DDL 执行阶段。

相关文章

精彩推荐