dbgate-pg-dumper: Zálohy PostgreSQL bez pg_dump

Published: 2026-08-07 | Stela Augustínová

Vytvoření zálohy PostgreSQL obvykle vyžaduje nástroj příkazové řádky pg_dump. Musí být nainstalován samostatně, dostupný v systémové cestě a kompatibilní s serverem PostgreSQL. To může ztížit nastavení zálohování, zejména v desktopových aplikacích a Docker kontejnerech.

Abychom to zjednodušili, vytvořili jsme dbgate-pg-dumper. Jde o zálohovací a obnovovací engine pro PostgreSQL napsaný v TypeScriptu, který běží přímo uvnitř DbGate nebo jiné Node.js aplikace. Není potřeba žádný externí proces pg_dump ani psql.

Zobrazit dbgate-pg-dumper na npm →

Zálohování PostgreSQL vestavěné v DbGate

DbGate Community používá dbgate-pg-dumper jako svou vestavěnou možnost zálohování a obnovy PostgreSQL. Zálohu v čistém SQL formátu můžete vytvořit přímo z rozhraní DbGate bez instalace dalších nástrojů PostgreSQL.

Dumper zahrnuje jak schéma databáze, tak data tabulek. Rozumí běžným objektům PostgreSQL, jako jsou tabulky, sloupce, indexy, omezení, sekvence, pohledy, funkce, triggery, rozšíření, komentáře, vlastnictví a oprávnění.

DbGate Premium přidává větší kontrolu, včetně možnosti vybrat jednotlivé tabulky a zvolit cílovou verzi PostgreSQL.

Dumper nenačítá celou databázi do paměti. Řádky tabulek jsou čteny a zapisovány postupně, takže stejný proces zvládne jak malé databáze, tak tabulky obsahující velké množství dat.

Výchozí výstup využívá efektivní formát COPY PostgreSQL. Pokud je preferován čitelnější nebo přenositelnější SQL soubor, jsou k dispozici i příkazy INSERT a INSERT s explicitním výčtem sloupců.

Během zálohování může DbGate zobrazovat aktuální fázi, zpracované tabulky, počty řádků, upozornění a chyby. Operaci lze také bezpečně zrušit.

Konzistentní a kompatibilní zálohy

Ve výchozím nastavení používá kompletní záloha jedno fyzické připojení k PostgreSQL a čte schéma a data tabulek v rámci jedné transakce typu read-only s izolační úrovní repeatable read. Díky tomu vzniká konzistentní snímek MVCC, který zabraňuje tomu, aby byly schéma a data tabulek pozorovány v různých okamžicích, zatímco se databáze mění. Tato záruka neplatí, pokud jsou transakce vypnuté; při použití existující transakce určuje její izolační úroveň volající strana.

Když je vybrána cílová verze PostgreSQL, dumper zkontroluje, zda jsou exportované funkce touto verzí podporovány. Pokud něco není kompatibilní, nahlásí jasné upozornění nebo operaci zastaví podle zvoleného nastavení. To je užitečné při přesunu databáze mezi různými verzemi PostgreSQL.

Obnova z čistého SQL

dbgate-pg-dumper umí obnovit SQL soubory, které vytvoří. Umí také číst kompatibilní čistý SQL výstup vytvořený pomocí pg_dump --format=plain.

Obnova probíhá postupně a hlásí dokončené operace a obnovené řádky. Správně zpracovává těla funkcí PostgreSQL, komentáře, identifikátory v uvozovkách a datové bloky COPY ... FROM STDIN.

Současný postup obnovy je zaměřen na čisté SQL soubory v kódování UTF-8. Formáty archivů PostgreSQL custom, tar a directory tento čtecí modul nepodporuje.

Dostupné také jako npm balíček

Ačkoli byl dumper vytvořen pro DbGate, je nezávislý na zbytku aplikace. Vývojáři v Node.js mohou nainstalovat veřejný balíček dbgate-pg-dumper a jeho API pro zálohování a obnovu použít ve svých vlastních projektech.

Balíček funguje i s hostovanými databázemi PostgreSQL. Můžete například použít dbgate-pg-dumper přímo v Node.js aplikaci k vytvoření zálohy databáze Neon, přičemž její schéma a data uložíte jako lokální soubor v čistém formátu SQL bez nutnosti instalovat pg_dump.

Verze 1.0.0 podporuje ES moduly i CommonJS a vyžaduje Node.js 20 nebo novější. Součástí je adaptér pro populární ovladač pg, přičemž jádro API lze připojit i k jinému klientovi PostgreSQL.

Díky dbgate-pg-dumper je snazší provádět zálohování PostgreSQL napříč desktopovými, serverovými a Docker prostředími, přičemž zálohy zůstávají k dispozici jako běžné, přenositelné SQL soubory.