Как передать переменную в сценарий SQL? - PullRequest
0 голосов
/ 21 июня 2019

Я хочу передать переменную в сценарий SQL, выполняемый heroku pg:psql.

Выполнение сценария без переменной может быть достигнуто путем:

heroku pg:psql <script.sql

Чтобы передать переменную в psql, я бы сделал psql -v assignment, но опция -v не работает с heroku pg:psql.

Я пробовал также

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

но получил ошибку:

Неизвестная база данных: / dev / fd / 63.Допустимые параметры: DATABASE_URL

Как я могу это сделать?

1 Ответ

0 голосов
/ 22 июня 2019

Получил ответ от официальной поддержки Heroku. По-видимому, это не может быть сделано с heroku pg:psql. Вместо этого psql может читать переменную окружения DATABASE_URL в ее собственном виде. Итак, это должно работать:

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