ChartDB DBML 导入导出 3 步实战:从文本到表结构可视化
【免费下载链接】chartdbDatabase diagrams editor that allows you to visualize and design your DB with a single query.项目地址: https://gitcode.com/GitHub_Trending/ch/chartdb
改完一张表,建表脚本和文档还是旧的吗?数据库设计里最耗时的往往不是设计本身,而是同步。ChartDB 是一个开源的数据库图表编辑器,它的 DBML(Database Markup Language,一种用纯文本描述表结构的标记语言)导入导出功能就是冲着这件事去的:你用文本写表,它把表结构可视化成图表;你改完设计,再一键导出回文本。
读完这篇文章,你会拿到:
- 一份可直接粘贴导入的 4 行最小 DBML 示例
- 图表与 DBML 文本之间双向转换的完整流程
- 导入后调整表结构的几个常用做法
🎯 它解决了什么问题
- 以前:字段改名要在 DDL 里全文搜索逐处修改;现在:DBML 文本里改一行,画布上的图表跟着变。
- 以前:ER 图是二进制文件,发群里没法逐行 review;现在:DBML 是纯文本,可以进 git,代码评审怎么审它怎么审。
- 以前:从 MySQL 迁到 PostgreSQL,DDL 靠手抄;现在:同一张图表可以导出成目标数据库方言的建表脚本,7 种数据库都覆盖(PostgreSQL、MySQL、SQL Server、MariaDB、SQLite、CockroachDB、ClickHouse)。
⚡ 3 分钟上手
把仓库拉到本地后运行npm install && npm run dev,浏览器打开应用,在导入面板里选 "DBML file",粘贴下面这段最小示例,确认后画布立刻出现表和字段:
Table users { id int [pk, increment] username varchar(50) [unique, not null] }导入解析的实现在 dbml-import/,它会把文本里的pk、unique、not null等标记逐个翻译成表属性。反过来,你在画布上设计好之后,从导出菜单选 DBML,就能把当前整张图下载成.dbml文件。
🛠 实战示例:给博客项目建三张表
假设你要为一个博客系统建 users、posts、comments 三张表,并把外键关系画清楚。把下面的 DBML 粘进导入面板,点击确认:
Table users { id int [pk, increment] username varchar(50) [unique, not null] } Table posts { id int [pk, increment] title varchar(100) [not null] author_id int [ref: > users.id] } Table comments { id int [pk, increment] post_id int [ref: > posts.id] content text }三张表加两条关系线会直接出现在画布上,ref: >就是外键引用,指向的字段自动画上连线。接下来把author_id的类型从 int 改成 bigint、再导出,下载的 DBML 和 SQL 都会同步更新。导出逻辑在 dbml-export/,它对自引用、复合主键这些边角情况都有专门处理。
❓ 常见问题
导入 DBML 会覆盖我现有的图表吗?不会。导入生成一张新图表,原画布保持不动,两者互不干扰。
导入之后还能改表结构吗?能。表和字段可以直接在画布上拖动、改类型,右侧面板里的 DBML 文本会跟着图表实时同步,两边永远一致。
只能导入 DBML 吗?不是。粘贴 DDL 建表语句、或者贴一条"Smart Query"(一次查询把表结构导出成 JSON)的结果,都能进入同一张画布。
"文本 → 图表 → 文本"这个闭环现在已经是现成的:导入、拖动修改、导出,三步走完。想确认完整功能清单看 README.md,打算补一个 DBML 解析的缺口就看 CONTRIBUTING.md 里的贡献指南。
【免费下载链接】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),仅供参考