Supabase Schema Diagram
Connect your Supabase database and see public, auth, and storage tables as an interactive ER diagram in under 10 seconds. Paste one pooler connection string; no metadata query, no JSON, no signup.
public + auth + storage
Live foreign keys
Export SVG/PNG
Connect a Supabase project in three steps
Copy the pooler string
Supabase dashboard -> Connect -> Session pooler. The direct db.xxx.supabase.co host is IPv6-only, so the pooler avoids ENOTFOUND and timeouts.
Paste and connect
Use a read-only role. dbdiagramr reads schema metadata from pg_catalog for one request, then discards the connection string.
Read the diagram
public stays unprefixed; auth and storage tables are labelled with their schema. Search, trace foreign keys, export SVG or PNG.
What the diagram shows
- All three Supabase schemas: public, auth, and storage, up to 500 tables.
- Real relationships: foreign keys from your tables to auth.users appear as lines, so profiles, teams, and memberships are easy to follow.
- Postgres-native types: uuid, jsonb, text[], enums, and domains render exactly as the database reports them.
- No row data: only catalog metadata is read. Nothing is stored or published.
Frequently asked questions
How do I create a schema diagram for Supabase?
In the Supabase dashboard open Connect, copy the Session pooler or Transaction pooler connection string, and paste it into dbdiagramr. The diagram reads your public, auth, and storage tables from pg_catalog and renders them in under 10 seconds. No metadata query to write and no JSON to paste.
Does it show the Supabase auth schema?
Yes. dbdiagramr reads public, auth, and storage, so auth.users, auth.sessions, auth.identities, and your own tables appear together. Tables outside public are prefixed with their schema, for example auth.users, so you can see how a public profiles table points back to auth users.
Which connection string should I use?
Use a Supabase pooler connection string from Dashboard -> Connect. The direct db.xxx.supabase.co host on port 5432 is IPv6-only, which is why some networks fail with ENOTFOUND or a timeout. The Session pooler works over IPv4 and is the safest default; the Transaction pooler on port 6543 also works.
Is my connection string stored?
No. The connection string is used for a single request to read schema metadata from pg_catalog and is then discarded. dbdiagramr does not store it, does not read row data, and does not publish your diagram.
Can I check Row Level Security at the same time?
Use the free Supabase RLS Check with the same read-only connection string. It lists public tables with RLS off, RLS enabled but no policies, or protection in place. The diagram shows structure; the RLS check shows exposure.
Is dbdiagramr free for Supabase projects?
Yes. Every diagramming feature is free, with no diagram limit and no account. A Pro plan for saved diagrams, version history, sharing and multiple schemas is in development; there is no price and no checkout yet.
Keep going
Related tools
See your Supabase schema now
Paste your Supabase pooler connection string and get an interactive ER diagram in under 10 seconds. No signup required.
Try it free →