Aurabase Logo
aurabasedocs
docsGuidesMigration 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.

FeatureCompatibilitéNote
createClient()IdentiqueImport @aurabase/client au lieu de @supabase/supabase-js
.from().select()IdentiqueMême API chainable PostgREST
RLS policiesIdentiquePolicies SQL Postgres — copier/coller
auth.uid() / auth.role()IdentiqueHelpers compatibles claim-à-claim
.rpc()IdentiqueMême signature pour fonctions Postgres
.storage.from().upload()IdentiqueAPI S3-compatible, path identique
.channel().on("postgres_changes")IdentiqueMême surface CDC
Edge Functions (Deno)Diff mineurNos handlers sont WASM. Adapter handler() → edge.handler()
Auth hooksDiff mineurHooks au lieu d'Edge Functions, API plus simple
Service role keyIdentiqueMême rôle, même portée
#
Étapes

Cinq phases, dans l’ordre

§ 02
  1. Schema — dump + import SQL (5 min)
  2. Data — copie des lignes par table (variable selon volume)
  3. Auth — export users avec hashes Argon2id (10 min)
  4. Edge Functions — adaptation handler Deno → WASM (30-60 min)
  5. Cutover — bascule DNS + keys (5 min)
#
Data

pg_dump + aura import

§ 03
migrate-data.sh
BASH
# 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.

migrate-users.sh
BASH
# 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
// 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 })
})
Dernière mise à jour · 15 avr. 2026