docs › Guides › Migration Supabase Migrer depuis Supabase pg_dump + aura import + types regen. Une migration moyenne prend 1h pour un projet de taille moyenne (10-50 tables, ~1 GB de données).
10 min de lecture· Niveau intermédiaire· Révisé le 15 avr. 2026
# Compatibilité
95% identique à Supabase § 01 Aurabase est né de l'envie de Supabase, avec quelques corrections d'ingénierie. L'API client, les policies RLS, le modèle auth, le storage — tout est calqué pour que la migration soit triviale.
Feature Compatibilité Note
createClient()Identique Import @aurabase/client au lieu de @supabase/supabase-js
.from().select()Identique Même API chainable PostgREST
RLS policiesIdentique Policies SQL Postgres — copier/coller
auth.uid() / auth.role()Identique Helpers compatibles claim-à-claim
.rpc()Identique Même signature pour fonctions Postgres
.storage.from().upload()Identique API S3-compatible, path identique
.channel().on("postgres_changes")Identique Même surface CDC
Edge Functions (Deno)Diff mineur Nos handlers sont WASM. Adapter handler() → edge.handler()
Auth hooksDiff mineur Hooks au lieu d'Edge Functions, API plus simple
Service role keyIdentique Même rôle, même portée
# Étapes
Cinq phases, dans l’ordre § 02 Schema — dump + import SQL (5 min)Data — copie des lignes par table (variable selon volume)Auth — export users avec hashes Argon2id (10 min)Edge Functions — adaptation handler Deno → WASM (30-60 min)Cutover — bascule DNS + keys (5 min)# Data
pg_dump + aura import § 03 # 1. Dump depuis Supabase (sans les schémas system)
pg_dump "$SUPABASE_DB_URL" \
--schema=public \
--no-owner --no-acl \
-f schema.sql
# 2. Import dans Aurabase (clé service_role)
aura db restore schema.sql --env prod --confirm
# 3. Regénérer les types TypeScript
aura types gen > src/aurabase.types.ts
Astuce
Pour des bases > 10 GB, utilisez aura db restore --parallel 8 — copy streaming avec 8 workers concurrents. Typique : 50 GB en ~25 min.
# Auth
Export users + hashes préservés § 04 Supabase et Aurabase utilisent tous deux Argon2id. Les hashes passent tels quels — vos utilisateurs se connectent sans reset de mot de passe.
# Export depuis Supabase (nécessite service_role_key)
aura migrate export-supabase \
--url $SUPABASE_URL \
--service-key $SUPABASE_SERVICE_ROLE \
--output users.jsonl
# Import dans Aurabase (mots de passe hashés préservés)
aura auth import users.jsonl --env prod
# → 380 412 users imported in 24s · MFA factors preserved
# Edge Functions
Deno → WASM, adaptation mineure § 05 Supabase Edge Functions sont Deno/JS. Aurabase compile en WASM. L'adaptation est quasi-mécanique : Deno.serve() → edge.handler(), imports deno.land → imports npm standards.
avant / après
TYPESCRIPT copy
// AVANT (Supabase Edge Function)
Deno. serve ( async (req) => {
const { name } = await req. json ()
return new Response (JSON. stringify ({ hello: name }))
})
// APRÈS (Aurabase Edge Function)
export default edge. handler ( async (req) => {
const { name } = await req. json ()
return Response. json ({ hello: name })
})
# Continuer
Pour aller plus loin § 06 Dernière mise à jour · 15 avr. 2026