news 2026/9/6 16:04:58

用一条查询画出 8 种数据库的关系图:ChartDB 上手指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用一条查询画出 8 种数据库的关系图:ChartDB 上手指南

用一条查询画出 8 种数据库的关系图:ChartDB 上手指南

【免费下载链接】chartdbDatabase diagrams editor that allows you to visualize and design your DB with a single query.项目地址: https://gitcode.com/GitHub_Trending/ch/chartdb

接手别人的项目,外键到底指向哪张表,翻了几十个 CREATE TABLE 还没理清,窗口一关又是一片空白。ChartDB 就是为这类场景做的。

ChartDB 是一个开源的数据库关系图编辑器:把一条「智能查询」的 JSON 结果贴进浏览器,整库的表结构就变成一张可编辑的 ER 图,不需要安装客户端,也不需要数据库密码。

五分钟上手:四步画出关系图

  1. 克隆仓库并启动本地开发:
git clone https://gitcode.com/GitHub_Trending/ch/chartdb cd chartdb && npm install && npm run dev

执行后终端会打印本地访问地址,浏览器打开,你会看到 ChartDB 的首页。

  1. 点「New Diagram」,选择你的数据库类型(PostgreSQL、MySQL、SQL Server、Oracle、SQLite、MariaDB、ClickHouse、CockroachDB 都支持)。选完左侧会生成一段现成的「智能查询」SQL,你会看到一段可以直接复制去执行的查询。

  2. 在数据库里执行这条查询,把返回的 JSON 复制回输入框。输入框会自动识别内容类型并实时显示校验状态,你会看到 JSON 被高亮、错误信息(如果有)出现在编辑器下方。

  1. 点「Import」。画布上出现完整的数据库关系图:每张表、每个字段、外键连线一目了然。

智能查询为什么能免密码

为什么难做:可视化数据库通常要靠客户端连接,那就绕不开密码;而且各库的元数据存放位置完全不同——PostgreSQL 在 pg_catalog,SQL Server 在 sys.tables,ClickHouse 在 system.tables,等于每种数据库都要单独写一套取数逻辑。

ChartDB 的做法:为每种数据库内置一条「智能查询」,把表、字段、索引、外键、视图一次性聚合成一个 JSON。你只需用数据库工具执行它(只读权限就够),把结果贴回来,全程不用交出密码。各库的取数脚本集中在 智能查询脚本目录。

三种内容怎么粘进来:JSON、DDL、DBML

为什么难做:DDL、DBML、JSON 粘进编辑器后都是「一堆文本」,如果还要用户自己先选对模式,就多了一个出错点。

它的实现:粘贴后按正则规则自动判断——出现Table xxx {[pk]这类 DBML 标记就识别为 DBML,出现CREATE TABLE等关键字就识别为 DDL,否则按 JSON 处理,逻辑见 detect-import-method.ts。DDL 还会按所选数据库的方言做语法校验,可自动修复的语法问题会给出「Try auto-fix」一键修复按钮,不用自己逐行找错。

跨方言导出:一张图变成目标库的 DDL

为什么难做:MySQL 和 PostgreSQL 的方言差异在细节里,反引号对双引号、auto_increment 对 serial,直接替换字符串很容易产出一段跑不通的脚本。

它的实现:ChartDB 为方言之间维护类型映射表做确定性转换,目前内置 PostgreSQL 到 MySQL、MariaDB、SQL Server 的转换路径;目标库不支持的特性不会静默丢弃,而是以注释形式写进脚本提醒。代码在 跨方言导出模块,另支持配置 API Key 后用 AI 生成目标库 DDL。

场景一:三分钟看懂新项目的 MySQL 表结构

场景描述:同事刚交接,项目用 MySQL,你写查询前需要理清表之间的关系。

操作路径:启动 ChartDB,选 MySQL,执行智能查询,把 JSON 粘回输入框,点 Import。

你会得到的结果:一张可拖拽、可缩放的关系图,表名、字段、主外键都在图上,外键关系一眼看全,不用再对着建库脚本反复对照。

场景二:PostgreSQL 迁移 MySQL 前先出迁移脚本

场景描述:业务准备把 PostgreSQL 迁到 MySQL,你需要交一份能直接在目标库执行的 DDL。

操作路径:导入 PostgreSQL 的关系图,在「Export SQL」里把目标数据库选为 MySQL。

你会得到的结果:一份 MySQL 方言的 DDL 脚本,其中目标库不支持的特性以注释标出,哪些要手工处理一目了然,交付前心里有数。

避坑与技巧

  • SSMS 截断:SQL Server 在 SSMS 里跑查询时,默认展示可能在 65535 字符处截断;粘贴恰好这个长度的结果时 ChartDB 会弹提示,按内置说明重新导出不截断的结果即可。
  • 超大 JSON:内容超过 2MB 时编辑器会跳过自动格式化,防止浏览器卡死;JSON 有损坏时点 Check 按钮可自动修复。
  • 版本选择:用 Supabase 或 Cloudflare D1 时记得选对应版本,auth、storage 等系统表会被自动过滤,图上不会出现一堆噪音表。
  • AI 导出:想让 AI 生成目标库 DDL,需要构建时传入 OPENAI_API_KEY 环境变量;不配置也能用内置的确定性导出路径。

上手命令

docker run -e OPENAI_API_KEY=<YOUR_OPEN_AI_KEY> -p 8080:80 ghcr.io/chartdb/chartdb:latest

执行后浏览器打开 http://localhost:8080,你会看到 ChartDB 首页,从导入第一张数据库关系图开始。

把上面那行命令跑起来,两分钟后就能看到自己数据库的第一张关系图。

【免费下载链接】chartdbDatabase diagrams editor that allows you to visualize and design your DB with a single query.项目地址: https://gitcode.com/GitHub_Trending/ch/chartdb

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 16:04:48

ChartDB:一条查询出数据库图表,跨库 DDL 导出

ChartDB&#xff1a;一条查询出数据库图表&#xff0c;跨库 DDL 导出 【免费下载链接】chartdb Database diagrams editor that allows you to visualize and design your DB with a single query. 项目地址: https://gitcode.com/GitHub_Trending/ch/chartdb 周五下午&…

作者头像 李华
网站建设 2026/9/6 16:04:42

3分钟做出U盘启动盘:Rufus免费写入ISO的10个实用功能

3分钟做出U盘启动盘&#xff1a;Rufus免费写入ISO的10个实用功能 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus 想把系统装进U盘&#xff0c;却卡在"ISO怎么写进去"这一步&#xff1f…

作者头像 李华
网站建设 2026/9/6 16:02:30

Windows NTP服务器搭建实战:内网时间同步与W32Time配置指南

简介&#xff1a;一份详细讲解Windows NTP服务器配置的docx文档&#xff0c;面向涉及华三视频监控、工控机、指控系统DCC与通讯控制服务系统CCS等业务场景的运维及工程人员&#xff0c;目标是解决多节点时间不同步带来的火情图片与录像不匹配问题。文档从环境前提切入&#xff…

作者头像 李华
网站建设 2026/9/6 16:01:58

SIWATOOL+U编程软件实操指南:配置、调试与现场问题排查

简介&#xff1a;《SIWATOOL U编程软件说明[汇编].pdf》是一份面向工业自动化与称重测量开发者的技术手册&#xff0c;围绕SIWAREX U多功能称重模块的校准与配置&#xff0c;系统讲解校零点、量程设定、通信接口配置、故障代码查看、状态灯监控及TTY接口通信等核心操作&#xf…

作者头像 李华
网站建设 2026/9/6 15:59:38

Ansys Fluent仿真实战:网格质量、多孔介质与UDF高频问题解析

简介&#xff1a;《Ansys Fluent Tutorial Guide 2022 R1》是Ansys官方于2022年1月发布的Fluent完整教程文档&#xff0c;主要面向CFD初学者和需要系统提升仿真能力的工程师&#xff0c;帮助读者掌握从几何导入、网格划分到求解设置、结果分析的全流程。这份PDF共1个文件&#…

作者头像 李华