🚀 我构建了 supabase-markdown — 一个在所有模式下生成完整 Supabase ERD 的工具(因为 Visualizer 做不到)
Source: Dev.to

介绍
大家好 👋


如果你使用过 Supabase Visualizer,你会知道它很棒——但它有一个限制:
一次只能查看一个 schema。
对于小项目这没问题,但当你的应用增长并且拥有多个 schema(例如 public、storage、auth、graphql_public 以及自定义 schema)时,想要一眼看到整个数据库结构几乎不可能。我非常需要一个“全局视图”,于是我自己实现了它。
🔥 介绍 supabase-markdown
GitHub:
通过 npm 安装:
pnpm add -D supabase-markdown
🧠 它解决了什么问题?
Supabase Visualizer 只能一次显示一个 schema,导致难以了解数据库的真实结构。使用 supabase-markdown,你可以得到:
- 一个文件
- 一个图表
- 每一张表
- 跨所有 schema
- 所有关系一起展示
现在你可以生成像下面这样的单一统一 ERD。
示例 ERD(Mermaid)
erDiagram
accounts ||--o{ posts : account_id
posts ||--o{ post_hashtags : post_id
hashtags ||--o{ post_hashtags : hashtag_id
profiles ||--|| accounts : id
storage.objects ||--o{ public_posts : image_id
全部集中在一处。无需在 schema 之间点击切换。
🛠️ 工作原理
Supabase 已经通过以下方式提供了完整的 schema 表示:
supabase gen types typescript
生成的 TypeScript 文件包含以下定义:
- 表
- 列
- 枚举
- 关系
- 外键
- schema
supabase-markdown 解析该文件并输出:
- 完整的 Markdown 文档
- 跨 schema 的合并 ERD
- 按 schema 分组的表
- 完全静态的输出(非常适合 GitHub、Notion、文档站点)