这是问题所在:我需要知道如何从执行的 .sql 脚本中获取所有 PostgreSQL 输出以记录到文件中,包括错误和查询结果。
我已经用 \o 和 \o 开始和结束标签包围了我的脚本,但这只会记录查询的结果,这并不能告诉我什么成功和失败。我尝试使用 Unix 工具将调用的结果传递给 PostgreSQL,如下所示:
$~: psql < filename.sql | tee &> filename.log
...没有成功。在这种情况下,Filename.log 最终完全为空。
我不想激活通用日志记录,因为我只关心我编写的脚本的成功/失败,并记录下来以备将来参考。
在 Oracle 中,我使用 SPOOL,在 MySQL 中我使用 TEE。这两个都足以满足我的需求,但是 \o 没有此功能,激活日志记录也没有,因为此日志记录到单个文件,我希望根据导致这些日志的文件来分离我的日志。
任何帮助,将不胜感激。
编辑:我使用的版本是 9.1
编辑:我遇到的问题是使用 -f 和使用 < 来执行 .sql 文件给了我基本相同的结果;它不记录错误,只记录查询结果。我需要以某种方式获取stderr(如果使用的是)将它的消息打印到文件而不仅仅是命令行,这样文件看起来基本上与运行文件的命令行结果相同,查询结果和错误混合在一起我需要这样做的原因是因为它使调试 .sql 文件变得更加容易,并且它允许我保留有针对性的记录,同时避免通用错误日志记录。