Migrate from Bubble to Supabase
DB export is in Beta
The Bubble-to-Supabase migration is in active beta. If you run into issues, email [email protected].
PlanB's one-click migration creates sensibly-named Postgres tables and columns from your Bubble schema, then copies your Bubble data into them. It's the fastest way to move your no-code app onto a Postgres-compatible database like Supabase.
What it does
- Generates table names — converts your Bubble names into valid Postgres identifiers (lowercase, no spaces, no emojis).
- Generates column names — same rules applied to every column.
- Creates the tables — no need to write
CREATE TABLEstatements yourself. - Copies the data — writes your Bubble rows into the new Supabase tables.
- Preserves Bubble references — Bubble unique IDs that link Things together are copied as text columns; you can add foreign key constraints manually afterwards.
Migration steps
- Step 1Prepare your Bubble app
Clean up table and column names before migrating — most failed exports trace back to skipping this step.
- Step 2Connect your Supabase database
Get your Supabase Session Pooler URI and paste it into PlanB. Use the Session Pooler — not Direct Connection or Transaction Pooler.
Reference
- Name normalisation rules
How PlanB converts Bubble names with emojis, spaces, and special characters into Postgres-friendly identifiers.
- PostgreSQL reserved words
The full list of SQL reserved words PlanB knows about, and how it handles tables named after them.
- Migration FAQs
Subscriptions, foreign keys, automatic sync, and best practices.
Long-form guides
For deeper articles on moving from Bubble to Postgres — data modelling decisions, foreign keys, ongoing sync — see the KnowCode blog.
Need help? Email [email protected] or DM in the Bubble forum.