¿Hay una opción " pg restore quiet quiet "como"psql quiet quiet"?


psql tiene un -q / --quiet opción (variable de entorno QUIET). pg_restore no tiene una opción silenciosa. ¿Hay alguna manera de hacer que pg_restore no muestre verbosamente los comandos SQL que está ejecutando?

# 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 (
...
Author: Rob Bednark, 2012-07-14

2 answers

La pregunta parece implicar que pg_restore está ejecutando estos comandos SQL y no querría verlos en la salida. Pero sacarlos es lo que se supone que debe hacer.

pg_restore tiene dos modos de operación, con o sin conexión a una base de datos. Cuando se llama sin una base de datos (-d opción) como se muestra en la pregunta:

Pg pg_restore cluster cluster 8.4/mycluster mycluster.dump

Entonces su único propósito es generar un conjunto de comandos SQL en texto plano que debe ser alimentado a un intérprete SQL para restaurar la base de datos. Esos comandos SQL forman un conjunto coherente sin ningún concepto de verbosidad, y son no ejecutados por pg_restore. Generalmente son redirigidos a un archivo para su posterior ejecución o canalizados a psql para su ejecución inmediata.

 46
Author: Daniel Vérité,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-15 15:25:00

Puede redirigir stdout a un archivo:

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

O proporcione la opción-d, pero lo que desea es -f o -d

pg_restore -f pg_restore.sql --cluster 8.4/mycluster mycluster.dump
pg_restore -d yourdatabase --cluster 8.4/mycluster mycluster.dump
 0
Author: Ligemer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-21 20:08:06