Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a "pg_restore --quiet" option like "psql --quiet"?

psql has a -q / --quiet option (environment variable QUIET). pg_restore does not have a quiet option. Is there any way to make pg_restore not verbosely show the SQL commands that it's executing?

# e.g., here's the verbose output that I don't want to see: $ pg_restore --cluster 8.4/mycluster mycluster.dump ---- PostgreSQL database dump -- SET statement_timeout = 0;SET client_encoding = 'UTF8'; SET standard_conforming_strings = off;SET check_function_bodies = false; ... -- -- Name: data_src; Type: TABLE; Schema: public; Owner: postgres; Tablespace:-- CREATE TABLE data_src ( ... 
like image 288
Rob Bednark Avatar asked Jul 14 '12 16:07

Rob Bednark


People also ask

What is Pg_restore in Postgres?

Description. pg_restore is a utility for restoring a PostgreSQL database from an archive created by pg_dump in one of the non-plain-text formats. It will issue the commands necessary to reconstruct the database to the state it was in at the time it was saved.

Where is Pg_restore?

pg_dump, pg_dump_all, pg_restore are all located in the bin folder of the PostgreSQL install and PgAdmin III install.


2 Answers

The question seems to imply that pg_restore is executing these SQL commands and you wouldn't want to see them in the output. But outputting them is what it's only supposed to do.

pg_restore has two modes of operation, with or without connecting to a database. When it's called without a database (-d option) as shown in the question:

$ pg_restore --cluster 8.4/mycluster mycluster.dump

then its sole purpose is to output a set of SQL commands in plain text that should be fed to an SQL interpreter to restore the database. Those SQL commands form a coherent set without any concept of verbosity, and they are not executed by pg_restore itself. They're generally redirected into a file for later execution or piped into psql for immediate execution.

like image 146
Daniel Vérité Avatar answered Oct 08 '22 14:10

Daniel Vérité


You can redirect stdout to a file:

pg_restore --cluster 8.4/mycluster mycluster.dump > pg_restore.log 

Or provide the -d option, but what you want is either -f or -d

pg_restore -f pg_restore.sql --cluster 8.4/mycluster mycluster.dump pg_restore -d yourdatabase --cluster 8.4/mycluster mycluster.dump 
like image 31
Ligemer Avatar answered Oct 08 '22 14:10

Ligemer