Navicat 15.0.24及以上版本才支持SQLite逆向工程生成ER图,需用本地数据库文件连接、勾选Tables、手动调整布局,并注意孤立表默认隐藏。
Navicat 15+ 才支持 SQLite 逆向工程生成 ER 图
低版本 navicat(如 12 或 14)根本不识别 sqlite 的 sqlite_master 结构,点“逆向工程”会直接报错 unsupported database type 或卡在连接后无反应。必须确认右下角状态栏显示的是 sqlite 3.x,且 navicat 版本 ≥ 15.0.24(推荐用 16.x)。mac 用户尤其注意:navicat for mac 15 起才加入 sqlite 逆向支持,旧版装了也没用。
连接时必须用“SQLite 数据库文件”方式,不能选“SQLite 内存数据库”
新建连接 → 类型选 SQLite → “数据库文件”栏必须填完整本地路径,比如 /Users/you/project/db.sqlite3;如果误选“内存数据库”,后续所有表都为空,ER 图生成出来只有个空画布。另外,文件权限要确保 Navicat 有读取权——常见坑是文件在 ~/Library/Application Support/... 下被系统限制访问,拖到桌面再连更稳妥。
逆向工程设置里,“仅选择表”比“全部对象”更可靠
点击连接 → 右键 → Reverse Engineer → 弹窗中勾选 Tables 即可,别碰 Views 或 Triggers:SQLite 的视图定义可能含语法变体(比如带 WITH RECURSIVE),Navicat 解析失败会导致整个流程中断,ER 图只生成部分表。外键关系默认能识别(只要建表时用了 FOREIGN KEY 且启用了 PRAGMA foreign_keys = ON),但不会自动补全索引或唯一约束的图形标注。
生成后手动调整布局比依赖自动排版更高效
Navicat 的自动布局对 SQLite 小型库还行,但一旦表超过 15 张,连线交叉严重、字段堆叠看不清。建议:
• 先取消勾选 Show Column Data Types(右键画布 → Options),减少视觉噪音
• 拖动主键字段到表顶部,外键字段靠右对齐,人工对齐后连线更清晰
• 如果某张表没出现在图中,不是漏了,而是它没被任何外键引用——Navicat 默认隐藏孤立表,需在图层列表里手动勾选显示
ALTER TABLE 历史,只读当前 schema。











