Supabase Auth migration

Migrate from Supabase

Move Supabase Auth users and identities to Authdog while keeping Postgres data joins and RLS paths working through preserved user ids.

Bring your identity data

Keep users, not legacy constraints

Map existing identities into Authdog while your current system keeps serving production traffic. Validate data and sign-in behavior before changing application routes.

User profiles and verified email state
Social and enterprise identity links
Application roles and organization membership
Metadata needed by your authorization model

Migration plan

Move in four controlled steps

01

Export from Supabase

Export auth.users and auth.identities, including verification state, provider links, app metadata, and bcrypt password hashes where present.

02

Map users and access

Retain each Supabase Auth UUID as an Authdog external identifier, link social providers, and translate app metadata into roles, organizations, or profile fields.

03

Preserve sign-in continuity

Import compatible bcrypt hashes when available. Route unsupported or OAuth-only accounts through progressive migration, magic link, or provider sign-in.

04

Cut over in stages

Accept Supabase JWTs and Authdog sessions during transition. Move clients in cohorts, update RLS helpers that depended on auth.uid(), then disable Supabase Auth for migrated traffic.

Cut over without a big-bang release

Run migration rehearsals against an isolated Authdog environment. Compare user counts, identity links, claims, and authorization outcomes. Switch production only after your acceptance checks pass.

Supabase-specific checks

  • Preserve every production auth.users id for RLS and foreign-key joins.
  • Plan the auth.uid() replacement strategy before flipping clients.
  • Recreate Google, Apple, GitHub, and other providers on Authdog redirects.
  • Map raw_app_meta_data roles into Authdog roles or organization membership.
  • You can keep Supabase as the database while Authdog becomes the IdP.

Ready to leave Supabase?

Create an isolated Authdog environment, test your import, and plan a cutover that works for your users.