scribase
Guide

Bring an existing project to Scribase

Moving a project in is one command: scribase import connects to a live hosted Postgres project and moves schema, data, auth users, storage, and policies — preserving user IDs so nobody resets a password. This guide runs the import safely.

Published September 23, 20266 min read

1.Preview with a dry run

Always start with --dry-run. The importer reads the source through its Postgres connection string and service key (pass them as flags or, better, as environment variables so they stay out of shell history), names the destination organization, project, and environment, and reports exactly which tables, users, and objects will and will not move — without changing anything.

bash
$ export SCRIBASE_SOURCE_CONNECTION_STRING='postgresql://postgres:…@db.abcd1234.example.com:5432/postgres'
$ export SCRIBASE_SOURCE_SERVICE_KEY='eyJ…'
$ scribase import supabase --project-ref abcd1234 \
    --org acme --project store --env production --dry-run

{"projectRef":"abcd1234","planned":{"tables":42,"authUsers":12038,"objects":214000,…},"findings":[…]}

2.Run the import

Drop --dry-run to perform the move. Transfers are resumable, so a dropped connection does not mean starting over. User IDs are preserved, so existing JWTs and foreign keys stay valid, and the report ends with a verification pass. Signing keys are never copied — the destination issues new ones.

bash
$ scribase import supabase --project-ref abcd1234 \
    --org acme --project store --env production

{"projectRef":"abcd1234","moved":{"tables":42,"authUsers":12038,…},"verification":{"checks":[…]}}

3.Point your app at Scribase

Change the URL and keys in your environment. Because the data plane is contract-tested for compatibility, your client SDK and CLI scripts keep working with no code change.

bash
SCRIBASE_URL=<environment URL from the console>
SCRIBASE_ANON_KEY=sb_publishable_…
FAQ

Common questions

Will my users have to reset their passwords?

No. Import preserves user IDs and identities, so existing sessions and password logins keep working after the move.

Can I see what will move before I commit?

Yes. Run scribase import with --dry-run to see exactly which tables, users, and objects will and will not move before anything changes.

Ready to try it?

Start a free project and follow this guide against a real backend, or move an existing project in with a dry run first.