PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

pg_dump ohne Kommentare zu Objekten?

AFAIK, weder pg_dump noch pg_restore haben Optionen zum Entfernen von COMMENT s. Aber wenn Sie ein binäres Dump-Format verwenden wie:

 $ pg_dump -Fc <your connection> -f /path/to/backup.dump

Sie könnten den TOC-Eintrag extrahieren und bearbeiten:

 $ pg_restore -l -f /path/to/backup.toc /path/to/backup.dump

Das Obige extrahiert eine TOC-Datei und speichert sie unter /path/to/backup.toc , dann könntest du jede Zeile mit COMMENT finden Eintrag und entfernen oder kommentieren Sie ihn. Wenn Sie keine seltsamen Namen für Ihre Objekte verwenden, genügt ein einfacher sed würde das Problem lösen, die Zeilen mit COMMENT zu kommentieren s könnten Sie Folgendes tun (ein Semikolon beginnt einen Kommentar):

$ sed -i 's/^\(.* COMMENT .*\)/;\1/g' bar.toc

Mit dieser neuen TOC-Datei können Sie jetzt pg_restore verwenden um Ihren Dump wiederherzustellen (mit -L Option):

$ pg_restore -L /path/to/backup.toc -d <your database> /path/to/backup.dump