Postgres输出不稳定,Unix命令



你好,我使用unix命令来执行postgres psql脚本,它创建了一个DB,理论上它可能更复杂,在这个命令之后,我使用">>"来保存文件上的输出,事情是它只保存当数据库成功创建时,但当它失败时,因为它已经存在不存储任何东西。

下面是完整命令

的示例
sudo -u postgres psql -f /home/user/script.sql >> /home/user/output.txt 

在脚本中,我只有"create database db2;"

我正在使用Ubuntu 14.04和Postgres 9.3.4

任何提示或帮助将是伟大的。或者,如果需要任何信息,我将很乐意回答你。

您还需要重定向stderr,在这种情况下,如果db已经存在于文本文件中,则应该有一些错误输出。

sudo -u postgres PSQL -f/home/user/script.sql>>/home/user/output.txt 2>和

您还可以将命令包装在bash脚本中,该脚本在运行命令之前首先检查DB是否存在。

一般来说,在运行任何命令时,您将输出到一个文件,您将希望将stderr重定向到stdout或将stderr重定向到一个单独的文件(取决于您希望如何使用任何错误输出)。请记住,有些程序(包括psqlpg_dump等)有时会将warninginfo消息记录到stderr,因此仅仅存在stderr输出并不总是意味着存在问题本身。

最新更新