Navicat Cloud 不能用于协同设计数据模型,因.ndm文件不支持多人实时编辑或版本合并,所谓“协同”仅为手动上传/下载静态快照,易致覆盖丢失、冲突无提示、结构错乱。

Navicat Cloud 不能用于协同设计数据模型——.ndm 文件不支持多人实时编辑或版本合并,所谓“协同”只是手动上传/下载静态快照,误用会导致覆盖丢失、冲突无提示、结构错乱。
为什么 Navicat Cloud 上的“添加到项目”对模型无效
Navicat Cloud 的协同机制只同步结构化配置(如查询、虚拟组、BI 工作区),但 .ndm 是本地二进制文件,既无变更追踪,也不拆解为可合并的文本单元。你右键“添加到项目”,实际只是把整个 .ndm 文件打包上传;队友点击“刷新”,只是下载一份新副本,旧版修改直接被覆盖。
- 常见错误现象:
Unsupported model version报错——不同 Navicat 版本生成的.ndm格式不兼容,Cloud 不做版本适配 - 模型中拖拽调整的图表布局、分组图层等“工作区状态”虽能同步,但若两人同时操作同一张表字段,后保存者会静默覆盖前者,且无冲突提示
- Cloud 不校验模型合法性:比如外键引用了尚未创建的表,也能上传成功,但队友拉取后无法正向工程到数据库
哪些内容能真正通过 Navicat Cloud 协同
只有明确标记为“可同步”的模块才走 Cloud 通道,模型不属于其中。可用的协同项包括:
-
查询:SQL 脚本以纯文本存储,支持多人编辑(仍需手动刷新) -
虚拟组:用于分类收藏的逻辑容器,结构简单,无执行依赖 -
BI 工作区:仪表板布局与组件绑定关系,不包含原始数据 -
聚合管道(仅限 MongoDB):JSON 定义的 pipeline 阶段,可 diff 和覆盖
注意:数据库连接 永远不同步——这是安全强制策略,不是功能缺失。
如果必须共享模型,该怎么做
绕过 Navicat 自带模型模块,改用可版本控制、可 diff、可协作的替代方案:
- 用
draw.io或dbdiagram.io绘制 ER 图,导出为.drawio(XML)或.sql,存入 Git 仓库 - 团队约定 DDL 脚本规范,所有表结构变更提交
CREATE TABLE或ALTER TABLE脚本,由 Navicat 执行而非反向工程 - 若坚持用 Navicat 建模,仅限单人主导:一人负责维护
.ndm,其他人通过导出的SQL 脚本或数据字典 PDF查阅,不反向编辑模型
最易被忽略的一点:Navicat 从不自动拉取 Cloud 更新——哪怕你刚上传了新模型,队友不按 F5 或右键“从云重新加载”,就永远看不到。这不是网络延迟,是设计如此。


















