Search Postgresql Archives

Re: How to restore to empty database

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/30/20 2:23 PM, Andrus wrote:
Hi!

I want to restore to new empty database using pg_restore .
pg_restore should create new empty database and restore into it.
If database exists, pg_restore should clean all data from it or drop and create new empty database before restore.

According to pg_restore doc, switches --clean --create --if-exists should do this.

I tried

    PG_COLOR=auto
    PGHOST=localhost
    PGPASSWORD=mypass
    PGUSER=postgres
    export PGHOST  PGPASSWORD PG_COLOR PGUSER
   pg_restore --clean --create --if-exists --dbname=mydb  --jobs=4 --verbose "mydb.backup"

but got error

pg_restore: connecting to database for restore
pg_restore: error: connection to database "mydb" failed: FATAL: database "mydb" does not exist

I also tried without --dbname=mydb but then got error

pg_restore: error: one of -d/--dbname and -f/--file must be specified

You need to connect to a database that exists with --dbname, for instance --dbname=postgres. Postgres will then use that connection to create the new database, in your case mydb.


How to restore to database which does not exist to drop existing database before restore if it exists ?
Should I invoke

drop database if exists

and

create database

commands before calling pg_restore or can pg_restore do it itself ?

Using Postgres 12 on Debian 10

Andrus.




--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux