如何将变量传递给SQL脚本?

时间:2019-06-21 15:30:44

标签: heroku-postgres

我想将变量传递给heroku pg:psql运行的SQL脚本。

运行不带变量的脚本可以通过以下方式实现:

heroku pg:psql <script.sql

要将变量传递给psql,我会做psql -v assignment,但是选项-vheroku pg:psql不兼容。

我也尝试过

heroku pg:psql <(cat <(echo "\set username self") script.sql)

但出现错误:

未知数据库:/ dev / fd / 63。有效选项包括:DATABASE_URL

我该怎么办?

1 个答案:

答案 0 :(得分:0)

得到Heroku官方支持的回应。 显然,heroku pg:psql无法做到这一点。 相反,psql可以以本机形式读取DATABASE_URL环境变量。 因此,这应该可行:

psql -v username=self `heroku config | grep DATABASE_URL | sed -E 's/\S+\s+//'` < script.sql