Navicat 17 的团队协作是彻底重写的新系统,必须启用 On-Prem Server 才生效;16 版本仅靠文件同步,无语句级日志、无冲突解决流程、无对象级权限控制,协作能力远弱于 17 版。
Navicat 17 的团队协作不是 Navicat 16 的增强版,而是彻底重写的新系统——所有协作能力必须依赖 On-Prem Server 才能生效。没启用它,Navicat 17 在协作上和 Navicat 16 几乎一样。
协作底层:文件同步 vs 对象级实时协同
navicat 16 的“协作”本质是云文件托管:navicat cloud 同步 .nqp 查询、.ncx 模型等文件,不记录操作者、无版本、无冲突提示。两人同时改同一个查询,后保存者直接覆盖前者全部内容。
Navicat 17 强制走对象级协同路径:所有变更(如 ALTER TABLE users ADD COLUMN status VARCHAR(20))都精确到语句级,带执行人、时间、机器信息;第二次保存会触发锁定提醒,并强制进入 Pull → Resolve → Push 流程。
- 16 版本日志只显示“文件已上传”,17 版本日志可查具体 DDL 语句
- 16 版本比对靠人工打开两个
.nqp文件肉眼找差异,17 版本右键字段选Compare with Database直接标出nullability或default差异 - 16 版本共享需导出 SQL → 发邮件 → 对方导入,17 版本拖拽查询到
On-Prem Server > 项目名 > 查询目录即刻全队可见
权限控制:账户级 vs 项目+对象级
Navicat 16 权限只有 Navicat Cloud 账户的读/写/管理三级,无法区分“这个 BI 图表能看不能改,但旁边的代码段允许编辑”。
Navicat 17 按项目分配角色(Owner / Admin / Member / Guest),并为每类资源单独设控:比如对某个 BI 工作区 设为只读,但同项目下的 代码段 允许编辑。
- 权限变更实时生效,无需重启客户端或刷新页面
- 执行查询前自动校验用户是否已配置对应数据库连接——没配过,
Execute按钮直接禁用 -
On-Prem Server管理员账号与Navicat Cloud账号完全隔离,两套权限需分别维护
跨平台协作:状态不可知 vs 实时状态协调
Navicat 16 没有在线状态感知,协作靠“谁最后保存谁赢”;Navicat 17 在右上角显示实时在线成员头像,点击可查看对方当前聚焦的实体(例如都在改 orders 表,但一人调字段,一人连外键)。
所有同步动作(增删改)都带本地操作日志,路径是 ~/.navicat/sync_log/。排查“为什么我改了没同步”时,第一眼就能确认是网络中断还是权限拒绝。
- 16 版本跨平台共享依赖手动导出/导入,17 版本按项目组织,Mac 上建的
订单分析 BI项目,Windows 同事打开即见即编 - 16 版本不支持固定查询结果快照,17 版本支持带注释的查询结果快照,可用于评审或复现
- 16 版本无法识别 PostgreSQL 的类型细节,17 版本默认参与比对;MySQL 的
TINYINT(1)在 17 版本中默认映射为BOOLEAN,但若源值含非 0/1,部署脚本会失败
On-Prem Server:高级选项 vs 默认协作起点
Navicat 16 的 On-Prem Server 需单独安装、配反向代理、手动导入证书;Navicat 17 首次启动就提示“是否启用本地协作服务器”,勾选后自动拉起内置 Go HTTP server,不依赖 Docker、反向代理或证书。
真正容易被忽略的是:On-Prem Server 不是可选项,是 Navicat 17 协作能力的唯一运行时环境。它不是“锦上添花”,而是默认协作起点——如果你没部署它,那 Navicat 17 和 Navicat 16 在协作上几乎没有区别。











