Move a PostgreSQL database to Plexivo Postgres
Copy a PostgreSQL 12 to 18 database from Supabase, Heroku or any other provider into Plexivo Postgres, then switch your app over.
Plexivo copies your existing PostgreSQL database into a new Plexivo Postgres database for you: schema, data, indexes and the extensions it can create. Your source keeps running throughout, and you switch your app over when you are satisfied.
Before you begin#
- The source runs PostgreSQL 12 to 18 and is reachable from the internet on its port.
- You have its connection string, such as
postgresql://user:PASSWORD@db.example.com:5432/mydb?sslmode=require. Add?sslmode=requirewhen the source supports encryption. - You have an empty Plexivo Postgres database to copy into. See Create a database; give it room for your data.
Copy your database#
- Start. In the console, open Migrations and choose New migration, or choose Create, then Bring from another cloud. Under Where do you want to move?, choose Plexivo Postgres.
- Pick your source. Supabase, Heroku Postgres, the managed PostgreSQL of another cloud, or Other PostgreSQL. The console shows where to find the connection string for each.
- Paste the Source connection URL and choose the Plexivo Postgres database to migrate into.
- Choose Inventory & continue. Plexivo checks the connection string and creates the migration. It connects to your source when copying starts.
- Copy. The copy starts as soon as it can. To run it in a quiet hour instead, set Start copying after and choose Schedule, up to 30 days ahead. Copying reads your source, which keeps running normally. You follow it through Copying your database, Copy stored safely, Restoring into Plexivo Postgres and Migration complete.
- Switch over. Point your app at the new database’s connection string, test it, and retire the source when you are satisfied.
What is copied#
- Your schema, data, indexes, views, functions and the extensions your database can create.
- Not copied: the source’s roles and grants, its publications and subscriptions, and provider-only extras such as
pg_stat_statementsand event triggers, which hold no data.
If the source uses an extension that your Plexivo database cannot create, the migration stops before anything is written and names it. See Extensions.
Your source credentials#
The source connection string’s format is checked when you add it, and it is used to connect when copying starts. It is kept in Plexivo’s secret store until the migration ends or you cancel it, then deleted, and it is never shown again.
Coming from Supabase#
Once your data is in, bring your users across with their passwords. From your server, with the secret key:
await server.auth.admin.importFromSupabase();await server.importUsersFromSupabase();Your Supabase queries keep working: the Data API uses the same query language. See Plexivo Postgres as a backend.
Limits#
- Up to 5 migrations in progress per organisation.
- The target must be empty, so a migration never mixes two datasets.
Next steps#
Updated 27 October 2026