Re: Creating a database with pg_restore - Mailing list pgsql-novice

From Tom Lane
Subject Re: Creating a database with pg_restore
Date
Msg-id 12077.1104347096@sss.pgh.pa.us
Whole thread Raw
In response to Creating a database with pg_restore  ("Keith Worthington" <keithw@narrowpathinc.com>)
List pgsql-novice
"Keith Worthington" <keithw@narrowpathinc.com> writes:
> I want to create a test database but I am having difficulty understanding how
> to use pg_restore.

> # pg_restore --create --dbname=IPA_TEST --schema-only --verbose -U postgres
> TEST.tar
> pg_restore: connecting to database for restore
> pg_restore: [archiver (db)] connection to database "IPA_TEST" failed: FATAL:
> Database "IPA_TEST" does not exist in the system catalog.
> pg_restore: *** aborted because of error

--dbname specifies the already-existing database to connect to
initially.  When you use --create, the only thing that connection is
used for is to issue the CREATE DATABASE command for the target DB,
and then pg_restore reconnects to the new target DB.  So the usual
locution is
    pg_restore --create --dbname=template1 ...etc...

Plan B is to create the target DB by hand before running pg_restore,
in which case you don't use --create and do specify the real target
DB in --dbname.  You have to do it this way if you wish to restore into
a DB with a different name than you dumped from, because --create will
always create the original DB name shown in the dump.

            regards, tom lane

pgsql-novice by date:

Previous
From: "Keith Worthington"
Date:
Subject: Creating a database with pg_restore
Next
From: george young
Date:
Subject: Re: [PERFORM] INSERT question