Re: pg_restore ERROR: permission denied to change default privileges

2025-06-14 Thread Rachel Roch




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.   :(

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




Re: pg_restore ERROR: permission denied to change default privileges

2025-06-14 Thread Adrian Klaver

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