SQL 一键转经典 Chen 风格 ER 图:开源 CLI + 在线工具 + Agent Skill

SQL 一键转经典 Chen 风格 ER 图:开源 CLI + 在线工具 + Agent Skill

做数据库设计、写课程作业、给需求出表结构时,经常要画 ER 图。很多人还在用 Visio / ProcessOn 一点点拖,或者把 SQL 丢进各种「半成品」工具里,版式乱、中文糊、还导不出设计文档。

我把平时在用的能力整理成了一套开源方案:sql-to-er ------从 CREATE TABLE 直接生成经典 Chen 风格 ER 图,并支持 Word 三线表设计文档。


能做什么

能力 说明
多方言 SQL MySQL / PostgreSQL / SQL Server / Oracle 常见 DDL
经典 Chen 图 实体矩形、属性椭圆、关系菱形,标注 1 / N
渲染策略 有 Graphviz 用 Graphviz;没有则自动 matplotlib 黑白回退
文档导出 Word 三线表「数据库设计文档」
其它格式 Mermaid、GoJS JSON(按需)
Agent Skill 可挂到 AI Agent,给 SQL 或自然语言需求直接出图

解析优先走 yanleaf 公开接口,失败会本地回退,不强制联网才能画图。


快速开始

环境:Python 3.9+

bash 复制代码
pip install sqlparse pyyaml python-docx pillow matplotlib graphviz

(国内可将 pip 源换成清华等镜像。)

bash 复制代码
# 只要 ER 图
python scripts/sql_to_erd.py your.sql --out erd --format png

# 只要 Word 设计文档
python scripts/sql_to_erd.py your.sql --out design --format word

# 图 + 文档 + Mermaid 全套
python scripts/sql_to_erd.py your.sql --out erd --format all

系统 Graphviz(可选,装了图更稳):

  • Windows:官网安装包或 winget install Graphviz.Graphviz
  • macOS:brew install graphviz
  • Ubuntu:sudo apt install graphviz

装不上也没关系,会自动走 matplotlib。


SkillHub 一键安装

若使用支持 SkillHub 的 AI 助手,可发送:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_0695bb88/sql-to-er。

安装完成后,提供 SQL 或业务描述,即可生成经典 Chen 风格 ER 图。

和「只支持一种库 / 只能看图」的工具差在哪

  1. Chen 记号:不是只有方框表结构,而是教学和论文里常见的实体---属性---关系画法。
  2. 能出 Word 三线表:交作业、写设计说明更直接。
  3. 可脚本化 / 可进 Agent:适合批量 SQL、CI 或和 AI 工作流集成。
  4. 在线版补齐交互:需要拖拽、AI 辅助建模时,用 https://yanleaf.com/tools/sql-to-er 即可。

作为 Agent Skill

仓库内带有 SKILL.md,拷到 Agent 的 skills 目录后:

  • 用户丢一段 SQL → 解析并出 ER 图
  • 用户说「做一个学生选课的 ER 图」→ 由当前模型设计表结构再渲染(不消耗在线站的 AI 额度)

约定是:用户要什么就出什么(只说「画图」就只出 PNG,不要默认全套导出)。


说明与规划

  • 当前聚焦 CREATE TABLE 与主外键关系,不做完整 DDL 仿真器。
  • 表很多、字段很多时,可只保留主键/外键等关键字段,避免图不可读。
  • 后续会按反馈继续打磨布局与方言细节。

欢迎 Star、提 Issue,或直接在线试用:

相关推荐
星恒随风7 小时前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
少司府7 小时前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
打工仔折腾 AI8 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
火云代理8 小时前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
无奈笑天下8 小时前
银河麒麟上lsblk命令教程详解
linux·运维·服务器·数据库
炫酷的大高个9 小时前
98% 连跑 20 次只剩 67%,我算了大模型重试账
人工智能·架构·开源
xiaoye-duck10 小时前
《C++ 项目:手写大模型接入 SDK》会话模块整合:内存 SessionManager 与 DataManager 持久化联动
开发语言·数据库·c++·语言模型
2601_9679791210 小时前
Python第七十四讲 异常处理完全精通 try-except零基础保姆级教程
python·异常处理·编程教程·错误处理·try-except
AllData公司负责人10 小时前
AI大模型数据开发底座系列说明书:AllData集成DB-GPT开源项目建设 AI 多模态分析底座,涵盖模态解析/智能大屏/MCP 扩展!
大数据·数据库·人工智能·gpt·数据采集·数据接入·模态解析
wuyk55510 小时前
Spider-第07讲-JSON接口与正则提取
爬虫·python·json