How to export your data from Supabase
Supabase has no single 'export all my data' button. On any plan you export your Postgres database (schema, data, roles, RLS policies, functions, triggers, and auth.users) as plain SQL files using the Supabase CLI's `db dump` command; Pro/Team/Enterprise plans additionally get automatic daily backups and Point-in-Time Recovery that can be restored from the Dashboard. Storage objects, Edge Functions, and auth/API configuration are not part of the SQL dump and must be migrated separately.
✓ Verified against Supabase's official documentation, October 2026
Step by step
- 1Install the Supabase CLI (or use `npx supabase`) and Docker Desktop, which the CLI needs to run pg_dump in a container
- 2In the Dashboard, open your project and click Connect to copy the database connection string (session pooler or direct connection)
- 3Export roles: run `supabase db dump --db-url "[CONNECTION_STRING]" -f roles.sql --role-only`
- 4Export schema: run `supabase db dump --db-url "[CONNECTION_STRING]" -f schema.sql`
- 5Export data: run `supabase db dump --db-url "[CONNECTION_STRING]" -f data.sql --use-copy --data-only`
- 6(Paid plans only) To grab a specific point-in-time snapshot instead, go to Database > Backups in the Dashboard and restore/download from the Scheduled or PITR backups list
- 7Separately export Storage bucket objects and redeploy Edge Functions if you use them, since neither is included in the database dump
- 8Keep roles.sql, schema.sql, and data.sql together off-site; these three SQL files are your portable export
What the export includes
- ✓Database schema (tables, views, indexes)
- ✓All table data
- ✓Database roles
- ✓Row Level Security (RLS) policies
- ✓Database functions and triggers
- ✓The auth.users table (user accounts)
What it doesn't include
- ✗Storage API objects/files (only metadata about them exists in the database)
- ✗JWT secrets and API keys
- ✗Auth provider/OAuth settings (Google, Apple, GitHub, etc.)
- ✗Edge Functions code
- ✗SMTP/email configuration
- ✗Custom domain and DNS settings
- ✗Passwords for custom database roles (stripped from backups for security)
Before you start
- ⚠Free tier projects get no automatic backups; Supabase explicitly recommends regularly running the CLI `db dump` command yourself and keeping off-site copies
- ⚠Daily backup retention is 7 days on Pro, 14 days on Team, and 30 days on Enterprise
- ⚠Enabling Point-in-Time Recovery stops daily backups (you only get one or the other)
- ⚠Deleting a project permanently removes all associated data, including any backups stored in S3 - this is irreversible
- ⚠Using raw pg_dump instead of `supabase db dump` will include Supabase-internal schemas and cause permission errors on restore; the CLI applies Supabase-specific filtering
- ⚠Managed Supabase may run a newer Postgres version (e.g. 17) than self-hosted Docker images default to (currently 15), which can cause version-mismatch issues on restore
- ⚠Custom role passwords must be reset manually after restoring from a dump/backup, since they are never stored in the export
Where to take your data
Free and cheaper tools that can take a Supabase export. See all Supabase alternatives →
Supabase Free
Create a new self-hosted or free-tier Supabase project, then restore with `psql --single-transaction --variable ON_ERROR_STOP=1 --file roles.sql --file schema.sql --command 'SET session_replication_role = replica' --file data.sql --dbname "[NEW_CONNECTION_STRING]"`
Neon
Since Neon is standard Postgres, point `psql` at your Neon connection string and load roles.sql, schema.sql, and data.sql the same way as a self-hosted restore
PlanetScale
PlanetScale's core product is MySQL-compatible (Vitess), so a Supabase Postgres SQL dump is not directly compatible; you would need to convert schema/data to MySQL syntax or use PlanetScale's separate Postgres offering if applicable
Exporting from Supabase: common questions
Does Supabase have a one-click button to export all my data?+
No. Supabase exports data through the CLI command `supabase db dump`, which produces separate SQL files for roles, schema, and data.
Can I export my data on the Free plan?+
Yes. The CLI `db dump` command works on any plan. Automatic daily backups and Point-in-Time Recovery in the Dashboard require a paid plan (Pro, Team, or Enterprise).
Are my Storage files (images, uploads) included in the export?+
No. Database backups/dumps only include metadata about Storage objects, not the files themselves - you need to copy Storage objects separately.
What happens to my backups if I delete my Supabase project?+
They're permanently deleted along with the project, including backups stored in S3. This cannot be undone, so export your data first.
Can I move my exported Supabase data to another Postgres provider like Neon?+
Yes. Since the export is plain SQL compatible across Postgres versions, you can restore roles.sql, schema.sql, and data.sql into any Postgres database using psql.
Do I need Docker to export my Supabase data?+
Yes, if using the CLI. The Supabase CLI runs pg_dump inside a Docker container based on the Supabase Postgres image, so Docker Desktop must be installed.
Sources
This guide was written from Supabase's own documentation and checked against it in October 2026. If a step has changed, the official page wins.
Supabase head-to-head
More Dev Tools tools people are leaving
All Dev Tools alternatives →What would you save without Supabase?
Pick your team size and see the yearly number.