Thread: have pg_restore create a new database?

have pg_restore create a new database?

From
"Thomas H."
Date:
i'm trying to have pg_restore create a new db and load the data.
 
unfortunately, pg_restore always uses the database name specified in the dump. "--create" and "--dbname=newdb" does not seem to have any effect (pg_restore yells about database being non-existant).
 
what is the proper method to restore data from a previous named database "olddb" into a fresh database named "newdb"? the old database still exists and i don't want to overwrite the data.
 
regards,
thomas 

Re: have pg_restore create a new database?

From
Tom Lane
Date:
"Thomas H." <me@alternize.com> writes:
> what is the proper method to restore data from a previous named database =
> "olddb" into a fresh database named "newdb"? the old database still =
> exists and i don't want to overwrite the data.

Create newdb by hand and then specify it as the connection target for
pg_restore.  *Don't* use --create, as that tells pg_restore to create
and (re)connect to the database named in the dump.

            regards, tom lane

Re: have pg_restore create a new database?

From
"Thomas H."
Date:
> "Thomas H." <me@alternize.com> writes:
>> what is the proper method to restore data from a previous named database
>> =
>> "olddb" into a fresh database named "newdb"? the old database still =
>> exists and i don't want to overwrite the data.
>
> Create newdb by hand and then specify it as the connection target for
> pg_restore.  *Don't* use --create, as that tells pg_restore to create
> and (re)connect to the database named in the dump.

i see.

but then failures will pop up: when creating a new db, it already contains
the system languages, functions and tables (for example tsearch2). as the
dump contains these as well, i'm getting lots of errors and more important,
tsearch2 custom config won't be restored.

how can i create an *empty* database?

- thomas




Re: have pg_restore create a new database?

From
Tom Lane
Date:
"Thomas H." <me@alternize.com> writes:
> how can i create an *empty* database?

Clone it from template0, not template1.

            regards, tom lane