.ndm文件仅保存模型结构、字段定义、关系连线、注释和基础样式;自定义SQL模板、字体设置、外部图片绝对路径引用、数据库连接信息均不包含,须手动补全。

.ndm 文件本身是跨平台的,Mac、Windows、Linux 上用同版本 Navicat Data Modeler 打开基本不会报错——但“能打开”不等于“能直接协作”,真正卡点在路径引用、字体回退和外部资源绑定。
.ndm 文件里哪些内容会丢失或失效?
.ndm 只保存模型结构、字段定义、关系连线、注释和基础样式(如颜色、线宽),以下内容完全不包含,必须手动补全:
- 自定义 SQL 生成模板(路径在
Profiles/Modeler/Templates,各系统位置不同,macOS 是~/Library/Application Support/PremiumSoft/Navicat Data Modeler/Templates,Windows 是%APPDATA%\PremiumSoft\Navicat Data Modeler\Templates) - 字体设置(比如模型中强制用了
San Francisco,迁到 Windows 没这个字体,Navicat 会静默回退为Segoe UI或默认无衬线体,导致排版错位) - 外部图片引用(若插入 PNG 时用了绝对路径,如
/Users/alex/diagrams/logo.png,到 Windows 上路径无效,图变空白) - 数据库连接绑定(
.ndm不存任何连接信息;同步模型到库时,仍需在目标机器上重新选一个已配置好的连接)
为什么中文注释有时显示为方块或乱码?
不是 .ndm 文件本身编码问题(它始终是 UTF-8 XML),而是 Navicat Data Modeler 在读取时依赖系统级字体渲染链:
- macOS 默认用 Core Text 渲染,对中文字体 fallback 宽松(自动找 PingFang、Heiti SC)
- Windows 依赖 GDI+,若未安装对应中文字体(如微软雅黑、Noto Sans CJK),且模型里又指定了非系统字体,就容易出现方块
- Linux(尤其 KDE/GNOME)需确认系统已启用
fontconfig并安装了noto-cjk或wqy-zenhei类字体包
临时解法:导出前统一把所有文本框字体设为 Helvetica 或 Arial 这类跨平台保底字体;长期建议团队约定使用开源字体并随项目分发。
如何安全共享并保持协作一致性?
别只传 .ndm 文件。推荐组合动作:
- 用 Navicat Cloud 或 Navicat On-Prem Server 同步整个「模型工作区」,它会连带上传关联的模板、片段、甚至版本变更记录(注意:Cloud 不存数据库密码,只存模型元数据)
- 若用 Git 管理,把
.ndm当二进制文件处理(.gitattributes中加*.ndm binary),避免行尾符自动转换破坏 XML 结构 - 每次交接前,运行一次「验证模型」(右键模型 →
Validate Model),它会高亮提示缺失字体、断开的图片链接、或字段类型不支持目标 DBMS 的问题
最常被忽略的一点:图层(Layer)和分组(Group)状态不总能 100% 跨平台还原。比如 macOS 上拖拽分组后缩放视图,再在 Windows 上打开,可能发现某些元素“漂移”了几像素——这不是 bug,是渲染坐标系微差。关键逻辑节点建议额外加文字锚点标注,别只靠视觉对齐。


















