On Fri, 12 Dec 2025 at 19:10, tushar <[email protected]> wrote: > > > > On Thu, Dec 11, 2025 at 9:39 PM Mahendra Singh Thalor <[email protected]> > wrote: >> >> >> >> Here, in our case, as the cluster already has a role with the current >> user in restore, we are reporting error "pg_restore: error: could not >> execute query: ERROR: role "role" already exists" and after this >> error, restore is exiting. >> >> If you restore using a different role, then you will not get any error >> and the full cluster will be restored. I will add some handling to >> ignore the "CREATE ROLE current_user" command in pg_restore. >> > Thanks Mahendra, Could you please also add some error message for this below > pg_restore command: > postgres=# create table t(n int); > CREATE TABLE > postgres=# insert into t values (1),(10),(100); > INSERT 0 3 > Perform pg_dump: ./pg_dump -Ft -f a.a1 postgres > Perform pg_restore: /pg_restore -Ft a.a1 -f -C -v > pg_restore: creating TABLE "public.t" > pg_restore: processing data for table "public.t" > [edb@1a1c15437e7c bin]$ ./psql postgres > psql (19devel) > Type "help" for help. > postgres=# \dt > Did not find any tables. > postgres=# > > regards, >
Hi Tushar, This is the handling of command line arguments. In code, after "-f", we expect file name, but here you are using "-C" which will be considered as file name. This is the case for all the command line arguments. If pg_restore has the "-f" option, then the "-d database" name can't be given and data will be copied into "-f filename" (it will not be restored in the cluster). Please let me know if you still have some doubts. -- Thanks and Regards Mahendra Singh Thalor EnterpriseDB: http://www.enterprisedb.com
