dbgate-pg-dumper: PostgreSQL-Backups ohne pg_dump
Published: 2026-08-07 | Stela Augustínová
Das Erstellen eines PostgreSQL-Backups erfordert normalerweise das Kommandozeilenwerkzeug pg_dump. Es muss separat installiert werden, im Systempfad verfügbar sein und mit dem PostgreSQL-Server kompatibel sein. Das kann die Einrichtung von Backups erschweren, besonders bei Desktop-Anwendungen und Docker-Containern.
Wir haben dbgate-pg-dumper entwickelt, um dies zu vereinfachen. Es handelt sich um eine in TypeScript geschriebene PostgreSQL-Backup- und -Restore-Engine, die direkt in DbGate oder einer anderen Node.js-Anwendung läuft. Es ist kein externer pg_dump- oder psql-Prozess erforderlich.
dbgate-pg-dumper auf npm ansehen →
In DbGate integriertes PostgreSQL-Backup
DbGate Community verwendet dbgate-pg-dumper als integrierte Option für PostgreSQL-Backup und -Restore. Sie können ein Plain-SQL-Backup direkt über die DbGate-Oberfläche erstellen, ohne zusätzliche PostgreSQL-Tools zu installieren.
Der Dumper erfasst sowohl das Datenbankschema als auch die Tabellendaten. Er versteht gängige PostgreSQL-Objekte wie Tabellen, Spalten, Indizes, Constraints, Sequenzen, Views, Funktionen, Trigger, Erweiterungen, Kommentare, Eigentümerschaft und Berechtigungen.
DbGate Premium bietet zusätzliche Kontrolle, unter anderem die Möglichkeit, einzelne Tabellen auszuwählen und die Ziel-PostgreSQL-Version festzulegen.
Konzipiert für große Datenbanken
Der Dumper lädt nicht die gesamte Datenbank in den Speicher. Tabellenzeilen werden schrittweise gelesen und geschrieben, sodass derselbe Vorgang sowohl kleine Datenbanken als auch Tabellen mit großen Datenmengen verarbeiten kann.
Die Standardausgabe verwendet das effiziente COPY-Format von PostgreSQL. INSERT- und spaltenbewusste INSERT-Anweisungen stehen ebenfalls zur Verfügung, wenn eine besser lesbare oder portablere SQL-Datei bevorzugt wird.
Während des Backups kann DbGate die aktuelle Phase, verarbeitete Tabellen, Zeilenanzahlen, Warnungen und Fehler anzeigen. Der Vorgang kann außerdem sicher abgebrochen werden.
Konsistente und kompatible Backups
Standardmäßig verwendet ein vollständiges Backup eine einzige physische PostgreSQL-Verbindung und liest Schema und Tabellendaten innerhalb einer einzigen schreibgeschützten Transaktion mit dem Isolationslevel Repeatable Read. Dies bietet einen konsistenten MVCC-Snapshot und verhindert, dass Schema und Tabellendaten zu unterschiedlichen Zeitpunkten beobachtet werden, während sich die Datenbank ändert. Diese Garantie gilt nicht, wenn Transaktionen deaktiviert sind; wird eine bestehende Transaktion verwendet, wird deren Isolationslevel vom Aufrufer bestimmt.
Wenn eine Ziel-PostgreSQL-Version ausgewählt wird, prüft der Dumper, ob die exportierten Funktionen von dieser Version unterstützt werden. Falls etwas nicht kompatibel ist, gibt er je nach den gewählten Einstellungen eine klare Warnung aus oder bricht den Vorgang ab. Das ist nützlich, wenn eine Datenbank zwischen verschiedenen PostgreSQL-Versionen verschoben wird.
Plain-SQL-Restore
dbgate-pg-dumper kann die von ihm erstellten SQL-Dateien wiederherstellen. Es kann außerdem kompatible Plain-SQL-Ausgaben lesen, die von pg_dump --format=plain erzeugt wurden.
Das Restore läuft schrittweise ab und meldet abgeschlossene Vorgänge und wiederhergestellte Zeilen. Es behandelt PostgreSQL-Funktionsrümpfe, Kommentare, in Anführungszeichen gesetzte Identifikatoren und COPY ... FROM STDIN-Datenblöcke korrekt.
Der aktuelle Restore-Workflow konzentriert sich auf UTF-8-Plain-SQL-Dateien. Die PostgreSQL-Archivformate Custom, Tar und Directory werden von diesem Reader nicht unterstützt.
Auch als npm-Paket verfügbar
Obwohl er für DbGate entwickelt wurde, ist der Dumper unabhängig vom Rest der Anwendung. Node.js-Entwickler können das öffentliche Paket dbgate-pg-dumper installieren und dessen Backup- und Restore-API in eigenen Projekten verwenden.
Das Paket funktioniert auch mit gehosteten PostgreSQL-Datenbanken. So können Sie dbgate-pg-dumper beispielsweise direkt in einer Node.js-Anwendung verwenden, um ein Neon-Datenbank-Backup zu erstellen und dessen Schema und Daten als lokale Plain-SQL-Datei zu speichern, ohne pg_dump installieren zu müssen.
Version 1.0.0 unterstützt ES-Module und CommonJS und benötigt Node.js 20 oder neuer. Ein Adapter für den populären pg-Treiber ist enthalten, während die Kern-API auch mit einem anderen PostgreSQL-Client verbunden werden kann.
Mit dbgate-pg-dumper lassen sich PostgreSQL-Backups einfacher in Desktop-, Server- und Docker-Umgebungen ausführen und bleiben dabei als gewöhnliche, portable SQL-Dateien verfügbar.