您如何 运行 从 .bat 文件在 heroku 上的远程 postgres 数据库上编写代码

How do you run code on a remote postgres database on heroku from .bat file

如果我使用 heroku pg:psql -a appname 远程进入 heroku 上的 postgres 数据库,我可以等待几秒钟让它连接,然后 运行 \copy (SELECT * FROM users) TO users.csv CSV DELIMITER ',' HEADER 提取 table从远程数据库到我的桌面。

但是,如果我将这两行代码放入一个 .bat 文件中并 运行 它,它会打开 cmd.exe 并连接到 postgres 数据库(如预期的那样),但是没有任何反应(不再执行代码)

如何构建 .bat 文件,使其 运行 成为第一行(连接到远程数据库),然后在远程连接的数据库中执行后续行?

您必须使用 -c 开关将命令传递给 psql。

psql -c "\copy (SELECT * FROM users) TO users.csv CSV DELIMITER ',' HEADER"

如果您需要执行更多命令,将它们放在一个单独的文件中并使用 -f 开关将其传递给 psql 会更容易。