Обсуждение: pg_restore won't create database

Поиск
Список
Период
Сортировка

pg_restore won't create database

От
"Christopher J. Bottaro"
Дата:
Here's what I'm trying to do:

$ pg_dump -Fc -b -f backup.pgd test_backup_db
$ dropdb test_backup_db
DROP DATABASE
$ pg_restore -C -d test_backup_db backup.pgd
pg_restore: [archiver (db)] connection to database "test_backup_db" failed:
FATAL:  database "test_backup_db" does not exist

Here is what the man pages for -C say:

-C
--create
 Create the database before restoring into it. (When this option is used,
the database named with -d is used only to issue the initial CREATE
DATABASE command. All data is restored into the database name that appears
in the archive.)

What am I doing wrong?  Thank you for the help.

Re: pg_restore won't create database

От
Tom Lane
Дата:
"Christopher J. Bottaro" <cjbottaro@alumni.cs.utexas.edu> writes:
> $ pg_restore -C -d test_backup_db backup.pgd
> pg_restore: [archiver (db)] connection to database "test_backup_db" failed:
> FATAL:  database "test_backup_db" does not exist

> What am I doing wrong?  Thank you for the help.

Trying to connect to a database that doesn't exist yet.

The usual approach is something like

    pg_restore -C -d template1 backup.pgd

Note you can only use -C to restore to a database named the same as the
dump was taken from.  If you want to restore into a different database
name, you can't use -C; instead the plan is

    createdb new_db
    pg_restore -d new_db backup.pgd

            regards, tom lane