Backups
Warum du dein Supabase-Backup nicht herunterladen kannst
Dein Supabase-Backup kannst du auf aktuellen Projekten nicht herunterladen, weil die Tageskopie physisch ist. Wie du es prüfst und selbst eine Kopie hältst.

Kurz gesagt
- Dein Supabase-Backup kannst du auf einem Projekt mit Postgres 15.8.1.079 oder neuer nicht herunterladen. Die täglichen Kopien sind dort physische Snapshots: Supabase kann sie für dich wiederherstellen, herunterladen kannst du sie nicht.
- Der Download-Button, den ältere Anleitungen beschreiben, gehörte zu logischen Backups, also SQL-Dateien. Nur Projekte auf den älteren Versionen haben ihn noch.
- Eine eigene Datei bekommst du nur, wenn du selbst einen logischen Dump mit der Supabase CLI oder pg_dump ziehst. Es ist die einzige Kopie, die den Verlust des Kontozugangs übersteht.
Du bist auf einem bezahlten Supabase-Tarif, also hast du Backups. Du öffnest Database, dann Backups, und da sind sie: eine Liste datierter Tageskopien, jede mit einem Restore-Button. Du suchst den Button, mit dem du dein Supabase-Backup herunterladen und irgendwo bei dir ablegen kannst, und es gibt keinen.
Kaputt ist nichts. Hier ist der Teil, den ältere Anleitungen immer noch falsch darstellen: Auf einem aktuellen Projekt gibt es kein Tages-Backup zum Herunterladen. Supabase hat seine täglichen Kopien auf eine andere Art von Backup umgestellt, eine, die Supabase für dich wiederherstellen und nicht herausgeben kann. Der Download-Button aus diesen Anleitungen gehörte zur älteren Art. Eine Datei, die du selbst hältst, machst du heute selbst, und es ist eine andere Art von Datei.
Am einfachsten stellst du dir den Unterschied mit deinem Handy vor. Das Backup, das es jede Nacht von sich selbst macht, ist vollständig und exakt, und es kommt in einem Schritt zurück auf ein Handy, das im selben Konto angemeldet ist. Du kannst es nicht auf einem Laptop öffnen und deine Fotos herausholen. Für Fotos, die du überall behalten kannst, exportierst du sie, und was du bekommst, ist ein Ordner mit ganz gewöhnlichen Dateien. Das tägliche Supabase-Backup ist jetzt die erste Art. Die Datei, die du halten kannst, ist die zweite.
Kann ich mein Supabase-Backup herunterladen?
Das tägliche nicht, wenn dein Projekt auf Postgres 15.8.1.079 oder neuer läuft. Die Backup-Dokumentation von Supabase sagt, dass alle Projekte ab dieser Version physische Backups nutzen, und die Troubleshooting-Hinweise sagen, dass Supabase mit physischen Backups die herunterladbare Backup-Datei nicht mehr erzeugt. Wiederherstellen kannst du diese Kopien, wann immer du willst. Mitnehmen kannst du keine.
| Das tägliche Supabase-Backup (physisch) | Ein Dump, den du selbst ziehst (logisch) | |
|---|---|---|
| Was es ist | Ein Snapshot der Dateien, die Postgres auf der Platte hält | SQL: Anweisungen zum Neuaufbau jeder Tabelle, dann die Zeilen |
| Wer es wiederherstellt | Supabase, wenn du auf Restore drückst | Du, mit psql, in ein beliebiges Postgres |
| Wohin es gehen kann | Dieses Projekt oder ein neues in derselben Region | Ein anderes Projekt, ein anderes Konto, dein Laptop, dein Server |
| Kannst du es herunterladen | Nein | Es ist bereits eine Datei |
| Übersteht es den Verlust des Kontozugangs | Nein | Ja, wenn du es woanders aufbewahrst |
Die letzte Zeile solltest du zweimal lesen. Supabase schreibt, dass beim Löschen eines Projekts alle zugehörigen Daten entfernt werden, einschließlich aller in S3 gespeicherten Backups. Wer das Projekt löscht, löscht die Tageskopien im selben Schritt mit.
Was ist der Unterschied zwischen einem physischen und einem logischen Backup?
Woher die Kopie genommen wird. Ein physisches Backup kopiert die Dateien, die Postgres selbst auf die Platte schreibt, was Supabase als Snapshot des zugrunde liegenden Datenbankverzeichnisses beschreibt. Ein logisches Backup bittet die Datenbank, sich selbst in SQL zu beschreiben, Tabelle für Tabelle und Zeile für Zeile, und schreibt diese Beschreibung in eine Textdatei.
Jede kann etwas anderes gut. Eine physische Kopie ist schnell gemacht und schnell zurückgespielt, und sie kommt genau so zurück, wie sie war. Lesen kann sie nur dieselbe Art von Postgres-Installation, aus der sie stammt, und bei Supabase heißt das: Supabases eigene Maschinen. Eine logische Kopie spielt sich langsamer ein und braucht mehr Platz, und jedes Postgres derselben oder einer neueren Version kann sie laden. Es ist wieder das Handy-Backup und der exportierte Ordner, und nur das zweite ist eine Datei, die du halten kannst.
Der Download-Button, an den sich viele erinnern, war die logische Art. Die
eigene Dokumentation von Supabase aus dem Jahr 2025
beschrieb, dass der tägliche Job pg_dumpall ausführte, die SQL-Datei zippte
und ablegte, und dass physische Backups die Datenbank weniger belasten und
deine Tabellen nicht lange sperren. Auf derselben Seite stand, dass physische
Kopien sich nicht im Backups-Bereich des Dashboards herunterladen lassen.
Wie finde ich heraus, welche Art mein Projekt hat?
Such auf der Backups-Seite nach einer Download-Möglichkeit. Öffne in deinem Supabase-Dashboard Database, dann Backups. Hat jede datierte Kopie eine Möglichkeit zum Herunterladen, läuft dein Projekt noch mit logischen Backups. Bietet jede nur Restore und sonst nichts, sind es physische Backups, und die ältere Dokumentation von Supabase nutzte genau diesen Test.
Die zweite Prüfung ist die Versionsnummer. Sie steht unter Project Settings,
dann General. Alles ab 15.8.1.079 bedeutet physische Backups. Lies sie von
links nach rechts: Eine Version, die mit 17 beginnt, ist neuer als jede 15,
und 15.8.1.100 ist neuer als 15.8.1.079.
Zwei Fälle musst du gar nicht prüfen:
- Point-in-Time-Recovery ist an. Das läuft per Definition auf physischen Backups. Supabase schreibt außerdem, dass es nach dem Abschalten von Point-in-Time-Recovery weiter physische Backups nimmt, der Download kommt also nicht zurück.
- Du bist auf dem Gratis-Tarif. Auf der Backups-Seite gibt es nichts zum Herunterladen oder Wiederherstellen, weil dir der Gratis-Tarif keine nutzbaren Tages-Backups gibt. Eine Kopie ohne Terminal machen ist der Anfang.
Wovor schützt mich welche Kopie?
Das Tages-Backup schützt dich davor, dass innerhalb des Projekts etwas schiefgeht. Eine Datei, die du selbst hältst, deckt auch den Verlust des Projekts selbst ab.
Die erste Art von Verlust verursachst du selbst. Ein Löschbefehl, der mehr Zeilen erwischt hat als gedacht, eine Migration, die ein KI-Agent geschrieben und du abgenickt hast, ein Skript, das auf die falsche Tabelle zeigte. Dafür ist die Tageskopie genau das richtige Werkzeug: gestern auswählen, Restore drücken, und das Projekt ist wiederhergestellt. Wie weit sie zurückreicht, hängt von deinem Tarif ab, und auf welchem Tarif du bist, klärst du in etwa zwei Minuten.
Die zweite Art hat mit einem Fehler in der Datenbank gar nichts zu tun. Eine Karte, die abgelaufen ist, während du weg warst, ein Login, das du nicht wiederherstellen kannst, ein Projekt, das jemand gelöscht hat. Die Kopien liegen hinter derselben Tür wie das Projekt, und die Tür ist das, was zugefallen ist. Dein Handy-Backup verhält sich genauso: Es rettet dich, wenn das Handy ins Meer fällt, und es hilft dir nicht an dem Tag, an dem du dich nicht mehr in das Konto einloggen kannst, in dem es liegt. Supabase bewahrt seine Backups bei der Plattform auf, weil eine Wiederherstellung genau deshalb nur einen Klick braucht. Eine Kopie, die das Konto übersteht, muss woanders liegen, und bei Supabase heißt das: ein logischer Dump, der aus dem Konto herausgeholt wurde.
Was bedeutet Wiederherstellen bei welcher Kopie?
Bei der Tageskopie macht Supabase die Arbeit, und du wählst, wo sie landet. Bei einer Datei, die du hältst, machst du die Arbeit, und sie kann überall landen.
Die Tageskopie ins selbe Projekt wiederherstellen ersetzt die Datenbank durch die Kopie, die du auswählst. Supabase schreibt, dass das Projekt währenddessen nicht erreichbar ist und eine größere Datenbank länger braucht.
Sie in ein neues Projekt wiederherstellen ist eine kostenpflichtige Funktion,
die Supabase
Restore to a New Project
nennt und noch als Beta kennzeichnet. Sie legt ein eigenes Projekt in derselben
Region an, mit deinen Nutzern und ihren gehashten Passwörtern, und es wird als
zweites Projekt abgerechnet. Ein Hinweis auf derselben Seite geht leicht unter.
Sie kopiert die gesamte Datenbank, einschließlich Erweiterungen, die nach außen
wirken, etwa pg_cron und pg_net, und diese Jobs laufen los, sobald die
Wiederherstellung fertig ist. Wenn ein geplanter Job in deiner App E-Mails
verschickt oder eine Zahlungs-API aufruft, tut das neue Projekt das ab dem
Moment, in dem es existiert, ebenfalls.
Eine Datei wiederherstellen, die du hältst, heißt, sie mit psql in das
einzuspielen, worauf du zeigst: ein neues Supabase-Projekt, eines in einem
anderen Konto oder ein Postgres auf deinem eigenen Rechner.
Wie du ein Supabase-Backup wiederherstellst
geht die Befehle durch und auch das, was danach noch kaputt ist.
Wie bekomme ich eine Kopie meiner Supabase-Datenbank als Datei?
Zieh selbst einen logischen Dump. Supabase veröffentlicht ihn in seiner Anleitung zu Backup und Restore als drei Befehle, von denen jeder eine Datei schreibt:
supabase db dump --db-url "postgresql://…" -f roles.sql --role-only
supabase db dump --db-url "postgresql://…" -f schema.sql
supabase db dump --db-url "postgresql://…" -f data.sql --use-copy --data-only
Den Connection String bekommst du über den Connect-Button oben in deinem
Projekt, mit deinem Datenbankpasswort anstelle des Platzhalters. Die Supabase
CLI braucht ein installiertes Docker, weil sie pg_dump in einem Container
ausführt, statt eines von deinem Rechner zu nehmen.
Behalte alle drei Dateien. Die zweite allein ist die Form deiner Tabellen ohne eine einzige Zeile darin, und deine Nutzer stecken nur in der dritten.
Du kannst pg_dump auch direkt ausführen. Zwei Dinge solltest du vorher wissen.
Supabase schreibt,
dass ein rohes pg_dump die internen Schemas von Supabase mit deinen zusammen
mitnimmt und dass das Einspielen dieser Schemas Berechtigungsfehler auslöst. Und
Postgres dokumentiert,
dass pg_dump nicht von einem Server dumpt, der eine neuere Hauptversion hat als
es selbst. Eine ältere Kopie auf deinem Rechner weigert sich also zu starten,
statt eine fehlerhafte Datei zu schreiben.
Leg die Dateien irgendwo ab, das nicht dein Supabase-Konto ist, und nicht nur auf deinen Laptop.
Kann ich ein Supabase-Backup auf meinem eigenen Rechner wiederherstellen?
Ein logisches schon, in ein Postgres derselben Hauptversion oder einer neueren. Die physische Tageskopie lässt sich nirgends außer bei Supabase wiederherstellen.
Die Versionsregel kommt von Postgres selbst. Seine Dokumentation sagt, dass sich
ein Dump
in neuere Versionen laden lassen sollte
und in eine ältere nicht garantiert, nicht einmal in die, aus der er stammt. Die
Anleitung von Supabase zum
Umzug eines Plattform-Projekts auf selbst gehostetes Supabase
zeigt, wie das aussieht. Die Plattform kann Postgres 17 fahren, während das
selbst gehostete Image standardmäßig auf 15 läuft, und die Datendatei enthält
dann eine Zeile, SET transaction_timeout = 0, die Postgres 15 nicht kennt.
Dieselben drei Dateien sind auch der Weg ganz weg von Supabase. Diese Anleitung beschreibt, wie du Supabase auf einem eigenen Server betreibst, und der Versionskonflikt ist das Erste, wovor sie warnt.
Auf deinem eigenen Rechner startet die Supabase CLI mit supabase start eine
lokale Kopie von Supabase in Docker. Spiel die drei Dateien mit dem
psql-Befehl aus der Anleitung zu Backup und Restore von Supabase ein, gerichtet
auf postgresql://postgres:postgres@localhost:54322/postgres, und deine Daten
sind auf deinem eigenen Rechner lesbar, ganz ohne Konto.
Es gibt eine Stelle, an der Supabase noch ein Backup zum Herunterladen anbietet. Ein Gratis-Projekt, das über sein Wiederherstellungsfenster hinaus pausiert ist, ersetzt den Restore-Button durch einen Download der letzten Kopie vor der Pause, und was du mit dieser Datei machst, ist ein eigener Artikel.
Was ist in keiner der beiden Kopien?
Deine hochgeladenen Dateien, deine Edge Functions und die meisten Einstellungen deines Projekts.
Supabase schreibt, dass Datenbank-Backups keine über die Storage API gespeicherten Objekte enthalten. Die Datenbank hält eine Zeile, die jede Datei beschreibt, und die Datei selbst liegt woanders, also enthält kein Datenbank-Backup auf irgendeinem Tarif die Uploads deiner Nutzer. Storage sichern ist eine eigene Aufgabe.
Die Liste, die Supabase für Restore to a New Project angibt, ist eine gute Bestandsaufnahme des Rests: Edge Functions, Auth-Einstellungen und API-Schlüssel, Realtime-Einstellungen, Erweiterungseinstellungen und Read Replicas müssen alle von Hand neu eingerichtet werden.
Eine Lücke betrifft nur die Datei, die du hältst. Wenn deine App Geheimnisse in Supabase Vault ablegt oder verschlüsselte Spalten nutzt, schreibt Supabase, dass Backup-Dateien nie den Root Key enthalten, nur die verschlüsselten Daten. Ein neues Projekt startet mit einem eigenen Schlüssel, also kommen diese Werte unlesbar an, bis der alte Schlüssel hinüberkopiert ist. Und der alte Schlüssel lässt sich nur abrufen, solange das alte Projekt noch aktiv ist. Ist dieses Projekt pausiert oder gelöscht, lässt sich der Schlüssel nicht mehr abrufen, und alles, was damit verschlüsselt wurde, auch nicht.
Was du diese Woche tun solltest
Was zu tun ist
- Öffne Database, dann Backups, und such nach einer Download-Möglichkeit. Bietet jede Kopie nur Restore, hast du physische Backups und dort nichts zum Mitnehmen.
- Zieh heute einen logischen Dump mit den drei Befehlen und bewahre alle drei Dateien zusammen auf.
- Durchsuche
data.sqlnachauth.users, bevor du dich darauf verlässt. In dieser Datei stecken deine Konten, wenn sie überhaupt drin sind. - Leg die Dateien an einem Ort ab, der nicht dein Supabase-Konto ist.
- Wenn du Supabase Vault oder verschlüsselte Spalten nutzt, lies nach, wie der Root Key umzieht, bevor du ihn brauchst. Er ist nicht in der Datei.
- Spiel den Dump einmal in ein Wegwerf-Projekt oder ein lokales Supabase ein, damit du ihn nicht zum ersten Mal an dem Tag öffnest, an dem du ihn brauchst.
Wo Reeve Care passt
Care zieht die logische Kopie für dich, bewahrt sie außerhalb von Supabase auf, und jede Kopie ist eine Datei, die du herunterladen kannst.
- Lade jede Kopie als Zip herunter. Darin stecken
schema.sql,data.sqlundroles.sql, ein Manifest, das die Zeilen jeder Tabelle zählt, und eine Notiz, wie du alles in ein beliebiges Postgres lädst. Es ist ein Standard-Dump, also kann ihn jede Entwicklerin und jeder Entwickler öffnen, und jeder andere Hoster auch. - Außerhalb deines Supabase-Kontos gespeichert, verschlüsselt, also noch da an einem Tag, an dem das Konto es nicht mehr ist.
- Zurückgelesen, bevor sie zählt. Das Datum in deinem Dashboard ist die letzte Kopie, die geöffnet und geprüft wurde, nie die letzte, die versucht wurde.
- Deine Nutzer sind drin. Das
auth-Schema reist mit deinen Tabellen, und die Dateien, die deine Nutzer hochgeladen haben, kommen mit, sobald du einen Storage-Zugang verbindest.
Care bewahrt eine Kopie deiner Supabase-Datenbank auf. Lass die täglichen Supabase-Backups daneben eingeschaltet: Sie sind der schnellste Weg zurück nach einer schiefgegangenen Migration, und die Datei ist das, was bleibt, wenn du das Konto verlierst. Wie eine Kopie gezogen, geprüft und heruntergeladen wird, ist Schritt für Schritt auf der Seite zu Supabase-Backups gezeichnet, und was jeder Tarif enthält, steht auf der Preisseite.
Bevor du diesen Tab schließt, öffne Database, dann Backups, und schau neben deine neueste Kopie. Gibt es dort nichts zum Herunterladen, ist die nächste Datei, die du hältst, die, die du selbst machst, und was einen Dump vollständig macht, liest du am besten, bevor du ihn machst.
FAQ
Kann ich mein Supabase-Backup herunterladen?
Das tägliche nicht, wenn dein Projekt auf Postgres 15.8.1.079 oder neuer läuft. Supabase schreibt, dass jedes Projekt auf diesen Versionen physische Backups nutzt und dass die herunterladbare Backup-Datei danach nicht mehr erzeugt wird. Wiederherstellen kannst du diese Kopien im Dashboard weiterhin. Eine Datei, die du behalten kannst, bekommst du mit einem logischen Dump, den du selbst mit der Supabase CLI oder pg_dump ziehst.
Was ist der Unterschied zwischen einem physischen und einem logischen Backup?
Ein physisches Backup kopiert die Dateien, die Postgres auf der Festplatte ablegt. Es lässt sich schnell und exakt wiederherstellen, aber nur auf derselben Art von Postgres-Installation, aus der es stammt, und bei Supabase heißt das: Supabase stellt es für dich wieder her. Ein logisches Backup ist SQL, also die Anweisungen zum Neuaufbau jeder Tabelle, gefolgt von den Zeilen. Es spielt sich langsamer ein und lässt sich in jedes Postgres derselben oder einer neueren Version laden, auch auf deinem eigenen Rechner.
Warum ist der Download-Button verschwunden?
Weil das, was er heruntergeladen hat, nicht mehr erzeugt wird. Der Button gehörte zu den älteren logischen Tages-Backups, also SQL-Dateien, die Supabase gezippt und abgelegt hat. Wechselt ein Projekt zu physischen Backups, erzeugt Supabase diese Datei nicht mehr, und die Backups-Seite bietet nur noch Restore ohne Download daneben. Point-in-Time-Recovery abzuschalten bringt ihn nicht zurück, denn Supabase nimmt auch danach physische Backups.
Wie bekomme ich eine Kopie meiner Supabase-Datenbank als Datei?
Führe die drei Befehle aus, die Supabase in seiner Anleitung zu Backup und Restore veröffentlicht: supabase db dump mit --role-only, dann ohne Flags für das Schema, dann mit --data-only und --use-copy für die Zeilen. Die CLI braucht Docker, weil sie pg_dump in einem Container ausführt. Bewahre alle drei Dateien zusammen auf, und zwar an einem Ort, der nicht dein Supabase-Konto ist.
Kann ich ein Supabase-Backup auf meinem eigenen Rechner wiederherstellen?
Ein logisches schon, in ein Postgres derselben Hauptversion oder einer neueren. Postgres dokumentiert, dass ein Dump sich vorwärts laden lässt und in eine ältere Version nicht garantiert, und Supabase nennt ein Beispiel: Die Plattform kann Postgres 17 fahren, während selbst gehostetes Supabase standardmäßig auf 15 läuft. Eine physische Tageskopie lässt sich nirgends außer bei Supabase wiederherstellen.
Bekomme ich mit dem Pro-Tarif ein herunterladbares Backup?
Nicht auf einem Projekt mit Postgres 15.8.1.079 oder neuer. Dort bekommst du mit Pro tägliche physische Backups, sieben Tage lang aufbewahrt, die du ins selbe Projekt wiederherstellen kannst oder, solange die Funktion in der Beta ist, in ein neues Projekt in derselben Region. Keiner der beiden Wege gibt dir eine Datei. Eine herunterladbare Kopie ziehst du selbst oder bezahlst jemanden dafür.