psql -o不是我的预期(如何将db响应输出到输出文件)

时间:2010-12-16 10:30:48

标签: postgresql

我正在从命令行创建PostgreSQL数据库(即使用psql)。

我的SQL语句中有一些错误,我想找出错误发生的位置(填充屏幕缓冲区的对象太多 - 所以我需要将thios保存到文件中)

我已经尝试了几乎所有东西,从使用-o选项,-L选项和使用tee - 我仍然无法捕获在屏幕上滚动过去的信息。

如何记录?

这是我到目前为止所尝试的:

  • psql -U -o dbcreate.log -f file.sql
  • psql -U -L dbcreate.log -f file.sql
  • psql -U -a -f file.sql | tee dbcreate.log

没有导致屏幕上的数据闪烁记录到文件中 - 我该怎么做?

1 个答案:

答案 0 :(得分:12)

您需要重定向stderr。在Un * x和Linux上:

psql ... 2>error.log

或stdout和stderr:

psql ... &>error.log

另一方面,如果您想逐个调查错误:

psql -v ON_ERROR_STOP=1 ...

有关使用psql执行SQL脚本的有用文章 - here