postgres pg_dump ejemplos consola postgresql postgresql-9.1 psql pg-restore

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