scribase
Free tool

Will your Supabase dump restore?

Paste your pg_dump. See every line that only works on Supabase, what fails on plain Postgres, and what moves as it is.

Checked in your browser. Nothing is uploaded.

What no dump contains

Storage files
The database holds one row per file. The files sit in object storage and need their own copy.
Users, unless you dump auth
A dump of the public schema has no auth.users rows, so every user and password hash stays behind.
Edge functions
Function source lives in your repository, not in the database.
Keys and secrets
The JWT secret, API keys and function secrets are not in the database dump.
FAQ

Questions people ask

Why does a Supabase dump fail on another Postgres host?

Your tables are plain Postgres, but the things around them are not. Policies call auth.uid(), foreign keys point at auth.users, grants name the anon, authenticated and service_role roles, and defaults call functions in the extensions schema. None of those exist on a fresh Postgres server, so the statements that mention them fail, and the tables and policies that depend on them fail after that.

Is my dump uploaded anywhere?

No. The text is read by JavaScript on this page. No request is sent and nothing is stored. A dump with data works too; the data rows are skipped.

How do I make the dump?

supabase db dump -f schema.sql with the Supabase CLI, or pg_dump --schema-only with the direct connection string from your project settings. Add --schema=public to leave out the schemas Supabase manages.

How is the Scribase column decided?

It says what the Scribase importer does with each item when it reads your live Supabase project. A service counts as working only if it passed in our recorded compatibility run, and an extension only if it is in the extensions directory. Everything else is shown as a manual step or as not supported.

Can I fix the dump by hand instead?

Yes, for a schema that only uses auth.uid() and the three API roles: create the roles, create an auth schema with your own auth.uid() that reads the user id from a session setting, and create the extensions schema before restoring. Users, storage files and Realtime still need their own replacement.