postgresql - pg_dump - psql restore sql file
¿Hay una opción "pg_restore--quiet" como "psql--quiet"? (2)
La pregunta parece implicar que pg_restore está ejecutando estos comandos SQL y no querrá verlos en la salida. Pero darles salida 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 (opción -d ) como se muestra en la pregunta:
$ pg_restore --cluster 8.4 / mycluster mycluster.dump
luego, su único propósito es generar un conjunto de comandos SQL en texto sin formato que se debe enviar a un intérprete de SQL para restaurar la base de datos. Esos comandos SQL forman un conjunto coherente sin ningún concepto de verbosidad, y no son ejecutados por pg_restore sí. Por lo general, se redirigen a un archivo para su ejecución posterior o se canalizan a psql para su ejecución inmediata.
psql tiene una opción -q / --quiet (variable de entorno QUIET ). pg_restore no tiene una opción tranquila. ¿Hay alguna manera de hacer que pg_restore no muestre verbalmente los comandos SQL que se están 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 (
...
Puedes redireccionar stdout a un archivo:
pg_restore --cluster 8.4/mycluster mycluster.dump > pg_restore.log
O proporciona la opción -d, pero lo que quieres 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