Connect the destination

Create an empty Supabase project, find its database password and service_role key, and connect it as the migration target — credentials stay in your browser.

The destination is the Supabase project you own and want to migrate into. It should be empty — a fresh project with no tables in the public schema. Migrating into a project that already has objects can raise relation already exists or duplicate key value violates unique constraint "buckets_pkey".

1. Create the project

In the Supabase dashboard, click New project. Pick a region close to your users and set a strong database password when prompted — you will need it in step 3. Wait until the project finishes provisioning before connecting.

2. Get the database password and service_role key

Two credentials are required:

  • Database password — the one you set at creation. If you lost it, reset it under Settings → Database → Database password → Reset. Resetting invalidates the old password everywhere it is used.
  • service_role key — under Settings → API → Project API keys. This key bypasses Row Level Security, so the migration can write to auth.users, storage buckets, and any RLS-protected table. See service_role key for what it can do.

Do not use the anon key here — it is subject to RLS and cannot write the auth or storage data.

3. Connect

Paste the values into the destination form:

Host:              db.<project-ref>.supabase.co
Database password: <your db password>
service_role key:  <your service_role key>

The connection uses the connection pooler, so it works from IPv4-only networks. If the connect check fails, the common causes are:

Where credentials go

Both values stay in your browser for the duration of the migration and are cleared when you close the tab. They are never written to a SupaMigrate database or sent to any server other than your own Supabase project. The source project is read-only; only the destination is written to.

Next: migrate the schema.

Edit this page on GitHubLast updated July 13, 2026