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

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.


Reply via email to