← Try the tool
Supabase

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

Supabase auth schema, 7 tables
Mini Map

Connect a Supabase project in three steps

Step 1

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.

Step 2

Paste and connect

Use a read-only role. dbdiagramr reads schema metadata from pg_catalog for one request, then discards the connection string.

Step 3

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 →