Eu me esforcei muito para tentar entender o processo de pg_dump e pg_restore, mas há algumas coisas importantes que ainda não entendi. Meu objetivo é copiar um esquema de um banco de dados de produção com muitas funções para minha replicação local, onde preciso usar apenas um usuário administrador do postgres.
Eu despejo myschema com esta sintaxe
pg_dump -h "pgprod" -p "5432" -d prod_db -U "myuser" -Fc -C --verbose --schema "myschema" -f .\test.backup
Restaurar
pg_restore -U postgres -h localhost -p 5432 -d localdb -C -v --no-acl --role=postgres test.backup
Mas não consigo descobrir como ignorar qualquer forma de funções que existisse no prod_db. Também tentei o sinalizador –no-owner com o mesmo resultado. Estou completamente preso nesta etapa, pois não entendo por que isso está acontecendo. Executando postgres 16
pg_restore: error: could not execute query: ERROR: role "user1" does not exist
Command was: ALTER TABLE public."mytable" OWNER TO user1;