你好,我使用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
重定向到一个单独的文件(取决于您希望如何使用任何错误输出)。请记住,有些程序(包括psql
、pg_dump
等)有时会将warning和info消息记录到stderr,因此仅仅存在stderr
输出并不总是意味着存在问题本身。