使用shell脚本从Heroku Postgres数据库中获取数据

时间:2017-03-24 21:33:32

标签: postgresql heroku

我是新手。我想编写一个脚本,我可以从命令行执行以在Heroku托管的PostgreSQL数据库上运行查询。

我有一个脚本script.sh,其可执行权限如下:

echo "Starting pull from postgres ..."
heroku pg:psql <db> --app <app-name>
\copy (<query>) to 'file.csv' WITH CSV
\q
echo "Done!"

echoheroku ...命令运行正常,但是,一旦Heroku启动,脚本就不再注入命令。只有在我手动关闭Heroku应用程序后才会注入最后三行。

我知道这是一个bash脚本,一旦Heroku打开就不打算输入postgreSQL命令了,但有没有办法做到这一点?

我感觉它可能涉及连接到Heroku并在一行中提交查询 - 我在Heroku's documentation周围搜索但没有看到任何有用的信息。

1 个答案:

答案 0 :(得分:2)

您可以使用--command标志将SQL命令与基于服务器的COPY一起传递给heroku pg:psql,然后将输出重定向到文件:

echo "Starting pull from postgres ..."
heroku pg:psql <db> --app <app-name> --command "COPY (<query>) TO STDOUT WITH CSV" > file.csv
echo "Done!"