On 6/14/25 01:42, Rachel Roch wrote:
>
>
>
> 13 Jun 2025, 20:13 by adrian.klaver@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
theother 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.klaver@aklaver.com