Aller au contenu

Backups

Sauvegardes du plan gratuit Supabase : en faire une sans terminal

Le plan gratuit de Supabase ne fait aucune sauvegarde : la copie vient de vous. Comment la faire depuis le tableau de bord, et ce que le CSV oublie.

Vlad Tkachenko8 min de lecture
Une base de données, une table qui en est sortie et, au bout d'une flèche, une petite pile de fichiers enregistrés.

En bref

  • Les sauvegardes du plan gratuit Supabase n'existent pas. Rien n'est copié nulle part de façon planifiée, donc la seule copie de vos données est celle que vous avez faite.
  • Le tableau de bord exporte une table en CSV en quelques clics. Cela sort vos lignes et laisse la structure derrière : relations, types, règles, comptes, fichiers.
  • Pour une copie capable de reconstruire le projet, un client de base de données de bureau produit un dump complet à la souris. Sans le moindre terminal.

Votre projet est sur le plan gratuit de Supabase, et vous avez ouvert Database puis Backups en cherchant une liste de copies datées à restaurer. Il n'y a rien. Aucune date, aucun bouton de restauration, seulement une note qui parle de passer à un plan supérieur. La page n'est pas cassée. Il n'y a aucune sauvegarde du plan gratuit Supabase à lister, parce que ce plan n'en prend aucune.

C'est ici que la plupart des réponses à cette question dérapent. Elles vous tendent une commande pg_dump, qui est le bon outil et une instruction que vous ne pouvez pas suivre : elle suppose un terminal, une installation de Postgres et une chaîne de connexion, et vous avez construit cette app dans Lovable ou Bolt précisément pour ne jamais avoir besoin d'aucun des trois.

Vous pouvez sortir vos données par le tableau de bord. Une voie prend une dizaine de minutes et vous donne vos lignes. L'autre prend plus longtemps et vous donne la base de données.

Le plan gratuit de Supabase inclut-il des sauvegardes ?

Non. Le plan gratuit n'en prend aucune, et aucun réglage ne les active. Les sauvegardes quotidiennes automatiques commencent sur le plan Pro, et la restauration à un instant précis est une option payante au-dessus.

Le plan sur lequel vous êtes est le fait dont dépend tout le reste ici, et cela se vérifie en deux minutes. Si vous êtes sur le gratuit, la seule copie de vos données est celle que vous avez faite. La suite de cet article explique comment en faire une aujourd'hui.

La copie la plus rapide : exportez vos tables en CSV

Ouvrez le Table Editor, choisissez une table et utilisez la commande d'export au-dessus de la grille. Elle propose de télécharger chaque ligne dans un fichier CSV, et ce fichier arrive dans votre dossier de téléchargements comme n'importe quel autre.

Puis recommencez pour la table suivante, et pour celle d'après. L'export travaille sur une table à la fois, ce que personne ne mentionne d'habitude : vous devez savoir quelles tables votre app possède. La liste à gauche du Table Editor est cette liste, et elle mérite d'être lue jusqu'en bas avant de commencer.

Dix minutes de clics vous donnent un dossier de fichiers CSV contenant chaque ligne créée par vos utilisateurs. Comme façon de ne pas perdre vos données cet après-midi, ce sont dix minutes bien employées. Ce que vous avez à la fin, c'est une copie des lignes, et rien que des lignes.

Ce que les fichiers CSV laissent derrière

Cinq choses, et pas une seule n'est une ligne. Un CSV contient le contenu d'une table et rien sur la façon dont cette table était construite : ce qui vous reste est donc une liste de ce qu'il y avait dans la pièce, sans aucune des étagères.

Ce qui reste derrièrePourquoi cela compte quand vous remettez les données
Les relationsUn CSV ignore quelle table doit être chargée en premier, donc l'import échoue ou laisse des lignes qui pointent vers des choses disparues
Les types des colonnesTout arrive en texte tant que rien ne dit le contraire à la nouvelle base, et une cellule vide et un vrai null deviennent la même chose
Les règles de Row Level SecurityLes règles qui décident qui peut lire quoi ne sont pas dans le fichier, et une table recréée sans elles est soit fermée à tous, soit ouverte à tous
Vos comptes de connexionIls sont dans un schéma auth séparé, ce qui explique qu'ils n'apparaissent pas dans le Table Editor à côté de vos tables
Tout ce que vos utilisateurs ont envoyéSupabase Storage vit en dehors de la base de données, donc aucun export d'aucune table n'a jamais contenu un fichier
Les lignes traversent. Les traits entre elles, les règles qui les couvrent et les gens qui se connectent, non.

La dernière ligne est celle qui surprend. Votre base de données n'a jamais stocké que le chemin de chaque fichier envoyé : un dossier de CSV chargé dans un projet neuf vous donne donc une table pleine de liens vers des fichiers qui ne sont plus là.

Cela ne rend pas la voie CSV inutile. Si ce que vous craignez est une mauvaise suppression dans une table, un CSV de cette table est exactement ce que vous voulez, et remettre quelques centaines de lignes par le même éditeur est un travail que vous pouvez faire seul. C'est reconstruire le projet entier qu'il ne sait pas faire.

Pendant que vous regardez vos tables : notre scan gratuit lit votre site en ligne depuis l'extérieur et vous dit lesquelles répondent à un inconnu. Il prend une vingtaine de secondes et ne demande aucun compte : scanner votre app.

Une vraie sauvegarde, sans ouvrir de terminal

Prenez un client de base de données de bureau. pgAdmin, TablePlus et DBeaver se connectent tous à un projet Supabase avec une chaîne de connexion, et tous les trois ont une commande de sauvegarde ou de dump rangée dans un menu. Ce qui en sort est un fichier pg_dump complet, et vous ne tapez aucune commande pour l'obtenir.

  1. Dans votre tableau de bord Supabase, ouvrez Connect et copiez une chaîne de connexion. Si la directe refuse de se connecter, prenez celle du session pooler, qui est celle qu'utilisent les instructions de restauration de Supabase elles-mêmes.
  2. Collez-la dans le client comme nouvelle connexion, avec le mot de passe de votre base de données.
  3. Trouvez la commande de sauvegarde. Dans pgAdmin, vous faites un clic droit sur la base et choisissez Backup ; dans TablePlus et DBeaver, elle est sous un menu d'export ou de dump.
  4. Enregistrez le fichier quelque part qui ne soit pas seulement votre ordinateur portable.
Les deux voies demandent la même chose à Postgres et produisent le même fichier. L'une d'elles vous demande de la taper.

Ce fichier emporte la pièce et les étagères : tables, colonnes, types, index, fonctions et vos règles de Row Level Security. Parmi les voies ouvertes sur le plan gratuit, c'est la seule qui puisse reconstruire le projet ailleurs, sur un autre compte, un jour où vous ne pouvez plus entrer dans celui-ci. Le relire est un travail à part, et comment restaurer une sauvegarde Supabase passe en revue ce qu'une restauration remplace et ce qu'elle laisse cassé derrière elle.

Où va le fichier, et à quelle fréquence

Quelque part qui ne soit ni le même ordinateur ni le même compte Supabase. Ce sont deux pannes différentes : le portable couvre un disque qui meurt, le compte couvre une carte expirée pendant vos vacances, un projet suspendu, un accès que personne ne récupère. Une copie à l'intérieur du compte est derrière la même porte que ce qu'elle protégeait, et c'est précisément ce que compare voie par voie trois façons de sauvegarder une base de données Supabase.

Pour la fréquence, demandez-vous combien vous seriez prêt à retaper. Perdre une journée d'inscriptions est agaçant, une copie chaque nuit le couvre. Perdre une heure de commandes veut dire rembourser des gens, et pour cela une copie par nuit est déjà trop lente.

Chargez ensuite une de vos copies dans un projet Supabase jetable et ouvrez votre app dessus. C'est la seule étape ici qui vous dit si le fichier vaut quelque chose, et elle coûte à peu près une demi-heure.

Si vous préférez ne pas faire cela à la main

Alors il faut que quelque chose prenne la copie pour vous et la vérifie ensuite. C'est ce que fait Reeve Care.

Une copie quitte votre compte Supabase selon un calendrier, est relue avant de compter, et fait le chemin inverse le jour où vous en avez besoin.
  • Cela tourne selon un calendrier, plusieurs fois par jour selon le plan, que quelqu'un y pense ou non.
  • La copie est chiffrée et conservée en dehors de votre compte Supabase, donc perdre le compte n'emporte pas les sauvegardes avec lui.
  • Chaque copie est relue et comptée face à ce qui est entré. La date affichée sur votre tableau de bord est celle de la dernière copie qui a passé ce contrôle, jamais celle de la dernière tentative.
  • Restaurer est un bouton, et un instantané de l'état actuel est pris avant de commencer, si bien que même la restauration a son annulation.
  • Vos fichiers envoyés sont copiés aussi, dès que vous connectez vos buckets Storage.

Gardez aussi les sauvegardes de Supabase activées le jour où vous passez à un plan payant. Deux copies à deux endroits, c'est toute l'idée. Ce que contient chaque formule est dans le tableau des tarifs Care, et la copie, le contrôle et la restauration sont dessinés étape par étape sur la page des sauvegardes Supabase.

Ce qu'il faut faire cette semaine

Que faire

  • Vérifiez sur quel plan tourne votre projet. Sur le gratuit, rien n'est copié pour vous, et tout le reste ici découle de ce fait.
  • Exportez vos tables en CSV aujourd'hui si vous n'avez que dix minutes. Une demi-copie vaut mieux qu'aucune copie.
  • Prenez cette semaine un dump complet avec un client de bureau et posez le fichier ailleurs que sur votre portable.
  • Copiez vos fichiers Storage séparément. Aucune sauvegarde de base de données ne les inclut, par aucune voie.
  • Chargez une copie dans un projet jetable, pour que la première fois que vous lirez ce fichier ne soit pas le jour où vous en avez besoin.

Faites l'export CSV avant de fermer cet onglet. C'est la plus petite chose utile de la liste et elle marche sur le plan que vous avez déjà. La checklist de sécurité en 10 minutes couvre les sauvegardes avec le reste de ce qu'il vaut mieux vérifier sur une app fraîchement lancée.

FAQ

Puis-je télécharger une sauvegarde depuis le tableau de bord Supabase sur le plan gratuit ?

Non. La page des sauvegardes est une fonction payante, et sur le plan gratuit il n'y a rien à y télécharger, puisque rien n'a jamais été pris. Ce que vous pouvez télécharger, ce sont vos propres données : le Table Editor exporte n'importe quelle table en fichier CSV, et un client de base de données de bureau connecté à votre projet vous écrit un dump complet. Les deux sont des choses que vous faites, pas des choses qui arrivent toutes seules.

Un export CSV est-il une sauvegarde ?

C'est une demi-sauvegarde. Un fichier CSV contient les lignes d'une table et rien sur la façon dont cette table était construite : ce que vous pouvez reconstruire avec, c'est un tableur, pas une base de données. Il lui manque les relations entre les tables, les types des colonnes, vos règles de Row Level Security, vos comptes de connexion et tous les fichiers que vos utilisateurs ont envoyés. Pour remettre une table que quelqu'un a vidée par erreur, c'est exactement ce qu'il faut. Pour reconstruire un projet, cela ne suffit pas.

Comment sauvegarder mes utilisateurs auth Supabase ?

Vos comptes de connexion vivent dans un schéma de base de données à part appelé auth, et c'est pour cela qu'ils n'apparaissent jamais dans le Table Editor à côté de vos tables et ne finissent jamais dans un CSV de celles-ci. Un dump complet, lui, peut emporter ce schéma. Remettre ces comptes en état de marche dans un autre projet est documenté par Supabase comme un travail avec ses propres étapes, et non comme quelque chose qui voyage avec vos tables. Lisez-le avant d'en avoir besoin, pas pendant.

Mon projet est en pause. Puis-je quand même récupérer mes données ?

Reprenez-le d'abord. Supabase met en pause les projets gratuits après une période de faible activité, et un projet en pause répond à chaque requête par une erreur tant que vous ne l'avez pas relancé depuis le tableau de bord. Une pause n'est pas une suppression. Une fois le projet reparti, les deux voies de cet article fonctionnent normalement, et prendre une copie à ce moment-là est la chose évidente à faire.

Ne vaudrait-il pas mieux simplement passer au plan Pro ?

C'est le moyen le moins cher d'obtenir une copie quotidienne automatique, et cela vaut le coup. Cela ne remplace pas le fait de garder une copie à vous, parce que les copies prises par Supabase vivent à l'intérieur du compte Supabase. Cela vous couvre le jour où vous cassez vos propres données, pas le jour où vous perdez l'accès au compte. Si votre app contient de vrais clients, la réponse est en général les deux.

Écrit par

Vlad Tkachenko

Fondateur de Reeve

Je passe mes journées à examiner des applications créées avec Lovable, Bolt, v0, Cursor et Replit, et la courte liste d'erreurs qui y reviennent sans cesse.

En savoir plus sur l'auteur

À lire ensuite

Tous les articles

Vous ne savez pas où en est votre propre application ?

Lancez une analyse gratuite et obtenez une note claire de A à F en une vingtaine de secondes. Sans compte, sans carte.

Analyser mon application

Vérification externe automatisée, pas un audit complet. L'absence de problème n'est pas une garantie de sécurité.