ChartDB DBML 导入导出 3 步实战:从文本到表结构可视化
2026/8/24 6:53:54 网站建设 项目流程

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/,它会把文本里的pkuniquenot 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询