下载 sql 并将其传输到 psql

下载 sql 并将其传输到 psql

我怎样才能一步完成这一操作?

下载备份命令:

curl http://s3.aws.com/backup.sql

恢复备份命令:

sudo -u postgres psql <PIPE-THE-OUTPUT-OF-PREVIOUS-COMMAND>

答案1

如果两个命令都有效,你应该尝试

curl -s http://s3.aws.com/backup.sql | sudo -u postgres psql

答案2

我知道这是一个老问题,但我在搜索过程中偶然发现(它是结果的顶部)并且根据手册看起来没有任何答案是正确的postgres

手册建议将-f -作为选项传递给psql,然后通过管道传输stdin您想要的任何内容。引用 9.4 的手册:

如果 filename 是 -(连字符),则读取标准输入直到出现 EOF 指示或 \q 元命令。但请注意,在这种情况下不使用 Readline(就像指定了 -n 一样)。

使用此选项与编写 psql < filename 略有不同。通常,两者都会按预期执行,但使用 -f 可以启用一些不错的功能,例如带有行号的错误消息。

答案3

还有另一种方法:

sudo -u postgres psql --file <(curl -s http://s3.aws.com/backup.sql)

相关内容