Miss Supatool

Sauvegarder et restaurer une base Supabase

Publié le · par

En bref. Sur l'offre gratuite, Supabase ne fait aucune sauvegarde automatique et conseille d'exporter régulièrement la base avec la commande db dump de sa CLI. Les offres payantes gardent de 7 à 30 jours de sauvegardes quotidiennes. Dans tous les cas, les fichiers du stockage ne sont pas dans ces sauvegardes et se copient à part.

Une sauvegarde ne vaut que par la restauration qu'elle permet. Sur Supabase, ce qui est sauvegardé dépend de votre offre, et les fichiers du stockage ne sont dans aucune sauvegarde de la base. Voici ce qui existe, ce qu'il faut faire soi-même et comment vérifier que tout se restaure, d'après la documentation de Supabase relue le 29 septembre 2026.

Ce que Supabase sauvegarde, selon l'offre

Deux précautions : supprimer un projet efface aussi ses sauvegardes, sans retour possible, et les sauvegardes quotidiennes ne gardent pas le mot de passe des rôles personnalisés.

Ce qu'une sauvegarde de la base ne contient pas

La base ne garde que la description des fichiers du stockage, pas les fichiers eux-mêmes : une sauvegarde de la base ne les contient donc pas. Restaurer une vieille sauvegarde ne fait pas non plus revenir un fichier supprimé depuis.

Restent aussi à reprendre à la main, même quand Supabase restaure une sauvegarde dans un nouveau projet : les fonctions Edge, les réglages de l'authentification et les clés d'API, les réglages du temps réel, et les extensions de la base.

Sauvegarder soi-même avec la CLI

La méthode décrite par Supabase demande la CLI de Supabase et Docker Desktop. Récupérez la chaîne de connexion de la base dans la fenêtre Connect du tableau de bord (le pooler de session par défaut), avec le mot de passe de la base, puis lancez trois exports :

La documentation ajoute à ce dernier export deux exclusions propres au stockage vectoriel (-x "storage.buckets_vectors" -x "storage.vector_indexes") : reprenez la commande exacte de la page citée en fin d'article. Rangez ensuite les trois fichiers ailleurs que sur Supabase, et datez-les.

Restaurer

Depuis le tableau de bord (offres payantes). Dans Database, puis Backups, choisissez la sauvegarde la plus proche avant l'incident. Le projet est inaccessible pendant la restauration, d'autant plus longtemps que la base est grosse : prévoyez l'interruption.

Dans un nouveau projet. La fonction « Restaurer dans un nouveau projet », encore en bêta, est réservée aux offres payantes dont les sauvegardes physiques sont activées. Elle copie la base, comptes utilisateurs compris, mais pas les fichiers du stockage ni leurs réglages. Un projet obtenu ainsi ne peut pas servir de source à son tour.

À partir des fichiers SQL. Créez le projet, activez-y les extensions et les webhooks de base de données que l'ancien utilisait, puis rejouez les trois fichiers d'un seul coup avec psql : psql --single-transaction --variable ON_ERROR_STOP=1 --file roles.sql --file schema.sql --command 'SET session_replication_role = replica' --file data.sql --dbname "$URL". Réactivez ensuite les publications du temps réel, et redonnez un mot de passe aux rôles personnalisés.

Un projet gratuit en pause depuis plus d'un an ne se restaure plus depuis le tableau de bord. Avant sa suppression, la vue d'ensemble du projet (Project Overview) permet de télécharger la sauvegarde de la base et les fichiers du stockage, à restaurer dans un nouveau projet.

Tester la restauration

Une sauvegarde jamais restaurée reste une hypothèse. Restaurez-la de temps en temps dans un projet de secours, comptez les lignes des principales tables des deux côtés et branchez votre application sur la copie. Vous découvrirez à temps un rôle oublié, une extension manquante ou un seau vide.

Comment Miss Supatool vous aide

Miss Supatool copie un projet Supabase vers un autre, depuis le navigateur. Ce n'est pas un outil d'archivage : il ne produit pas de fichier de sauvegarde, il remplit un second projet. C'est justement utile pour tenir un projet de secours à jour, ou pour vérifier qu'une copie complète se reconstruit.

L'outil n'écrit jamais dans la source, et les clés restent en mémoire le temps de l'onglet. Il ne copie ni les comptes utilisateurs, ni ce qui vit hors du schéma choisi. Le détail de la méthode est dans Migrer un projet Supabase vers un autre.

Miss Supatool est une application indépendante, ni affiliée à Supabase ni approuvée par Supabase.

Questions fréquentes

Le plan gratuit de Supabase fait-il des sauvegardes ?

Non. Les sauvegardes quotidiennes commencent avec l'offre Pro, qui en garde sept jours. Sur l'offre gratuite, Supabase recommande d'exporter régulièrement la base avec la commande db dump de sa CLI.

Les fichiers du stockage sont-ils dans les sauvegardes ?

Non. La base ne contient que leur description. Il faut les copier à part, par exemple avec la CLI ou, d'un projet à l'autre, avec Miss Supatool.

Peut-on restaurer une sauvegarde dans un autre projet ?

Oui. Sur une offre payante avec sauvegardes physiques, la fonction « Restaurer dans un nouveau projet » le fait depuis le tableau de bord. Sinon, les fichiers SQL exportés par la CLI se rejouent avec psql dans le projet de votre choix.

Miss Supatool remplace-t-elle une sauvegarde ?

Non. Elle copie un projet vers un autre projet, mais ne produit aucun fichier d'archive. Gardez des exports datés hors de Supabase, et servez-vous de l'outil pour tenir une copie de secours ou tester une reconstruction.

Sources