Lists: | pgsql-bugs |
---|
From: | iann(at)fuelforce(dot)com |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #7507: pg_restore silently fails when restoring a db with the --create flag and no user. |
Date: | 2012-08-27 15:34:10 |
Message-ID: | E1T61KM-0005nD-Qc@wrigleys.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 7507
Logged by: Ian Nobile
Email address: iann(at)fuelforce(dot)com
PostgreSQL version: 9.1.4
Operating system: Mac OS X Version 10.8
Description:
Attempting to restore a db using pg_restore to a new database server using
the --create and --dbname flags fails silently if the db owner username does
not exist in the new db or the -O flag is not used.
Command used:
pg_restore --create --verbose --dbname=testserver
/Volumes/USBLINKS1/hostname.testserver.net_postgres_database
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | iann(at)fuelforce(dot)com |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #7507: pg_restore silently fails when restoring a db with the --create flag and no user. |
Date: | 2012-08-27 19:31:08 |
Message-ID: | 7536.1346095868@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
iann(at)fuelforce(dot)com writes:
> Attempting to restore a db using pg_restore to a new database server using
> the --create and --dbname flags fails silently if the db owner username does
> not exist in the new db or the -O flag is not used.
> Command used:
> pg_restore --create --verbose --dbname=testserver
> /Volumes/USBLINKS1/hostname.testserver.net_postgres_database
It'll fail, yes, because pg_dump by itself doesn't dump CREATE USER
commands (since users are external to any individual database).
However, it hardly seems "silent" to me. I see complaints like these:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 1851; 1262 116736 DATABASE mydb dbowner
pg_restore: [archiver (db)] could not execute query: ERROR: role "dbowner" does not exist
Command was: ALTER DATABASE mydb OWNER TO dbowner;
pg_restore: [archiver (db)] Error from TOC entry 161; 1259 116737 TABLE mytable dbowner
pg_restore: [archiver (db)] could not execute query: ERROR: role "dbowner" does not exist
Command was: ALTER TABLE public.mytable OWNER TO dbowner;
WARNING: errors ignored on restore: 2
Possibly you want to use the --exit-on-error option?
regards, tom lane
From: | Bruce Momjian <bruce(at)momjian(dot)us> |
---|---|
To: | iann(at)fuelforce(dot)com |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #7507: pg_restore silently fails when restoring a db with the --create flag and no user. |
Date: | 2012-09-01 16:14:04 |
Message-ID: | 20120901161404.GE2969@momjian.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-bugs |
On Mon, Aug 27, 2012 at 03:34:10PM +0000, iann(at)fuelforce(dot)com wrote:
> The following bug has been logged on the website:
>
> Bug reference: 7507
> Logged by: Ian Nobile
> Email address: iann(at)fuelforce(dot)com
> PostgreSQL version: 9.1.4
> Operating system: Mac OS X Version 10.8
> Description:
>
> Attempting to restore a db using pg_restore to a new database server using
> the --create and --dbname flags fails silently if the db owner username does
> not exist in the new db or the -O flag is not used.
> Command used:
> pg_restore --create --verbose --dbname=testserver
> /Volumes/USBLINKS1/hostname.testserver.net_postgres_database
Well, I tried this and it showed a proper error:
$ pg_restore --create --verbose -U yy --dbname=testserver /rtmp/xx
pg_restore: connecting to database for restore
pg_restore: [archiver (db)] connection to database "testserver" failed:
FATAL: role "yy" does not exist
--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ It's impossible for everything to be true. +