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_rolekey — under Settings → API → Project API keys. This key bypasses Row Level Security, so the migration can write toauth.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:
password authentication failed for user "postgres"— wrong or unreset database password.connect ENETUNREACHon an IPv6 address — direct connection instead of the pooler.
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.