Подтвердить что ты не робот

Есть ли опция "pg_restore --quiet", например "psql --quiet"?

psql имеет параметр -q/--quiet (переменная среды QUIET). pg_restore не имеет тихой опции. Есть ли способ сделать pg_restore не верным образом отображаемые команды SQL, которые он выполняет?

# e.g., here 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 (
...
4b9b3361

Ответ 1

Вопрос, похоже, подразумевает, что pg_restore выполняет эти SQL-команды, и вы не захотите их видеть на выходе. Но вывод их - это то, что он должен делать.

pg_restore имеет два режима работы: с или без подключения к базе данных. Когда он вызывается без базы данных (опция -d), как показано в вопросе:

$pg_restore --cluster 8.4/mycluster mycluster.dump

тогда его единственная цель - вывести набор команд SQL в виде обычного текста, который должен быть отправлен в интерпретатор SQL для восстановления базы данных. Эти SQL-команды образуют когерентный набор без какого-либо понятия многословия, и они не выполняются самим pg_restore. Обычно они перенаправляются в файл для последующего выполнения или отправляются в psql для немедленного выполнения.