Blog

Mon aide-mémoire du CLI Supabase

Les commandes du CLI Supabase que j'utilise vraiment — installer le CLI, lancer les migrations la première fois puis à chaque itération, semer, importer des données et sauvegarder une instance locale. Le fichier Markdown est téléchargeable à la fin.

Année
July 15, 2026
Stack
Notes

Chaque fois que je démarre un nouveau projet Supabase, je finis par rechercher les mêmes quelques commandes du CLI. Alors je les garde dans un seul fichier. Le voici, mis au propre — et vous pouvez télécharger le Markdown brut en bas pour l'ajouter à vos propres notes.

Installer et vérifier le CLI

J'installe le CLI avec Homebrew et je vérifie la version avant toute chose.

supabase --version
brew upgrade supabase

Ensuite je me connecte et je lie le dossier local à un projet distant :

supabase login
supabase projects list
supabase projects create

cd <dossier-du-projet>
supabase init   # crée supabase/config.toml
supabase link

Première migration (base distante neuve)

Voici la séquence que je suis la première fois, contre une base de données distante toute neuve (avec l'extension PostGIS déjà activée sur le distant) :

supabase migration list
supabase migration fetch
supabase db pull --schema auth,storage --debug   # récupère le schéma distant

supabase migration new create_building_tables
# éditer le fichier create_*_tables.sql généré
supabase db diff --debug

supabase migration up
supabase db push --include-seed --debug

supabase migration list   # le local et le distant devraient être synchronisés

Itérer sur les migrations

À chaque changement suivant, la boucle est plus courte. Le détail important, c'est que supabase migration fetch écrase les changements locaux : je ne l'exécute donc que lorsque je veux que le distant l'emporte.

supabase migration list
supabase migration fetch          # écrase les changements locaux

supabase db diff                  # ce qui a changé en local vs distant
supabase db pull --schema auth,storage --debug

supabase migration new create_*_tables
# éditer la migration
supabase migration up             # applique le dernier fichier de migration
supabase migration list           # voir les migrations encore en avance sur le distant

supabase db push --debug --include-seed

Semer et importer des données

Semer, c'est simplement un fichier : on ajoute supabase/seed.sql et il s'exécute au db push --include-seed (et au db reset).

Pour importer de vraies données, j'ai essayé plusieurs approches. Téléverser un .csv via le Table Editor était lent et parfois incomplet chez moi. Utiliser un client PostgreSQL comme DBeaver pour créer la table en SQL et importer le CSV était bien plus rapide — une table de 6 colonnes avec une colonne géométrique et 66 lignes s'est importée sans accroc. Pour les chargements en masse, il y a pgloader :

brew update
brew install pgloader
pgloader --version

Sauvegarder une instance locale

Arrêter avec --backup conserve les volumes Docker, donc rien n'est perdu :

supabase stop --backup

# inspecter les volumes d'un projet donné
docker volume ls --filter label=com.supabase.cli.project=<nom-du-projet>

Avant toute étape destructrice (comme supabase db reset), je fais un dump de la base locale pour avoir une référence à comparer :

supabase db start

# référence avant nettoyage
supabase db dump --local -f baseline_before.sql

# ...après suppressions :
# supabase db dump --local -f after.sql
# diff baseline_before.sql after.sql

supabase db reset

Une mise en garde que je réapprends à mes dépens : supabase db reset efface la base. Sur toute instance contenant de vraies données chargées, faites d'abord un dump de référence.

Téléchargement

Voici l'ensemble sous forme de fichier Markdown — enregistrez-le à côté de vos propres notes de projet :

⬇ Télécharger l'aide-mémoire du CLI Supabase (Markdown)
Blog
Supabase Survey - Le plus dur n'est plus de construire