Navicat 不支持新建ER图,仅能基于已有数据库结构逆向生成;需先创建含外键的关联表,再通过Ctrl/Cmd多选表→右键→“查看ER图”触发,且依赖用户对pg_constraint等系统表的SELECT权限。
Navicat 里没有“新建ER图”按钮,别找错了入口
navicat 本身不提供从零手绘或拖拽生成 er 图的功能。它只支持基于**已有数据库结构**逆向生成实体关系图(即反向工程)。如果你刚建好空库、还没建表,直接点“er 图”会看到空白画布或提示“无对象”,这不是 bug,是设计逻辑——它不造数据,只画已有数据的关系。
实操建议:
- 先在
查询窗口或表设计器中建好至少两张有关联的表(比如users和orders),且明确设置了外键(FOREIGN KEY)约束; - 确保外键定义中指定了
REFERENCES表和字段,Navicat 依赖这个元数据推导连线; - PostgreSQL 的外键若用
ON UPDATE CASCADE或带DEFERRABLE等扩展属性,不影响识别,但没定义外键就真不会连线。
如何正确触发 ER 图生成:右键位置很关键
不是右键数据库名,也不是右键“ER 图”标签页——正确路径是:在左侧连接树中,展开目标数据库 → 展开 表 节点 → 按住 Ctrl(Windows)或 Cmd(macOS)多选你想包含进图的表 → 右键 → 选择 查看ER图。
常见错误现象:
- 只右键单个表 → 出来的图只有那张表,没关系线;
- 右键数据库名 → 弹出菜单里根本没有
查看ER图选项; - 用的是 Navicat Free 版 → 该功能被禁用,需 Premium 或 Standard 许可证(检查菜单是否灰显)。
外键没显示连线?检查 PostgreSQL 的系统目录权限
Navicat 读取外键信息依赖 pg_constraint、pg_class 等系统表。如果连接用户是普通角色且没被授予 SELECT 权限,ER 图可能加载成功但不画线,甚至报错 permission denied for table pg_constraint。
解决方法(需 DBA 或有 superuser 权限者执行):
- 运行:
GRANT SELECT ON TABLE pg_constraint, pg_class, pg_namespace TO your_user;
- 若用的是
pg_catalogschema 下的视图,也可授USAGE权限:GRANT USAGE ON SCHEMA pg_catalog TO your_user;
- 重启 Navicat 连接,再试一次
查看ER图。
导出的 PNG/SVG 图文字模糊或缺字段名?调整渲染设置
Navicat 默认用缩放方式渲染 ER 图,导出高分辨率图时容易糊。尤其字段名、类型标注常变细小或重叠。
实操建议:
- 生成图后,先点击工具栏
放大镜+按钮,把视图缩放到 150%~200%; - 再点
文件 → 导出图像,格式选SVG(矢量,缩放不失真)或PNG(设分辨率 ≥ 300 dpi); - 若字段名仍被截断,双击表框进入编辑模式,手动拖动字段区域扩大宽度——Navicat 不自动适配长字段名,得自己调。











