On 6/14/25 01:42, Rachel Roch wrote:



13 Jun 2025, 20:13 by adrian.kla...@aklaver.com:


To get at an editable script you can do something like:

pg_restore -f my_database_txt.sql  my_database.dump

This will give you a plain text version of the dump that you can feed back to 
psql to load into remote database.


Thanks Adrian !

I had thought maybe maybe I could do a "pg_restore -l my_database.dump" and 
ignore the relevant line using whatever the other flag is, but sadly there doesn't appear 
to be enough flexibility, i.e.

pg_restore -l my_database.dump | fgrep -F postgres
gives:
2067; 826 16607 DEFAULT ACL public DEFAULT PRIVILEGES FOR TABLES postgres

But

pg_restore -l my_database.dump | fgrep -F my_database_ro
gives nothing.   :(

That is because the lines returned from pg_restore -l are not the full commands, they represent(generally) a summary of the object, its name and the owner.

The error message and your first example above show that the command is there. See at here:

https://www.postgresql.org/docs/current/app-pgrestore.html

in the Examples section how you can comment out the line. Then you could use -L to feed the list back to pg_restore.

Isn't fgrep -F redundant? As I understand it fgrep = grep -F


So either your solution or Tom's "just ignore it" sound like they'll work.

--
Adrian Klaver
adrian.kla...@aklaver.com



Reply via email to