是否有像"psql --quiet"这样的"pg_restore --quiet"选项?

Rob*_*ark 28 postgresql pg-restore postgresql-9.1 psql

psql有一个-q/ --quiet选项(环境变量QUIET). pg_restore没有安静的选择.是否有任何方法可以pg_restore不冗长地显示它正在执行的SQL命令?

# 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 (
...
Run Code Online (Sandbox Code Playgroud)

Dan*_*ité 56

这个问题似乎意味着pg_restore执行这些SQL命令并且您不希望在输出中看到它们.但输出它们是它应该做的.

pg_restore有两种操作模式,有或没有连接到数据库.如果在没有数据库(-d选项)的情况下调用它,如问题所示:

$ pg_restore --cluster 8.4/mycluster mycluster.dump

那么它的唯一目的是以纯文本形式输出一组SQL命令,这些命令应该被送到SQL解释器来恢复数据库.这些SQL命令形成了一整套无冗长的任何概念,他们不执行pg_restore本身.它们通常被重定向到一个文件中供以后执行或通过管道传输psql立即执行.

  • 啊哈,现在一切都清楚了!我错误地假设没有-d,pg_restore会自动为我创建数据库.但是通过你的解释,以及阅读pg_restore(1)手册页,现在很清楚了.我的问题是一个错误的假设,所以我会考虑如何改写它以使未来的读者更清楚.谢谢@Daniel_Vérité! (6认同)