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