1
curl -n -X GET https://api.heroku.com/apps/mypgapp/addons/heroku-postgresql
-H "Content-Type: application/json"   
-H "Accept: application/vnd.heroku+json; version=3"

関連する PG アドオン情報を含む JSON を返しますが、CLI がpg:credentialsコマンドで提供する接続文字列は提供しません。Heroku REST API 経由で取得したいのは、ホスト、ポート、データベース名、ユーザー、およびパスワードです。

それは可能ですか?

4

1 に答える 1

2

Heroku CLI のデバッグ出力を見ると非常に役立つことがわかりました。この場合、環境変数からクエリ文字列を取得できます。

DEBUG=1 HEROKU_DEBUG=1 heroku config:get -a mypgapp DATABASE_URL                                                   ❖ ruby-2.3.0
heroku-cli/5.2.12-09f3ecc (darwin-amd64) go1.6.2 /Users/bjeanes/.local/share/heroku/cli/bin/heroku cmd: version
heroku-cli/5.2.12-09f3ecc (darwin-amd64) go1.6.2 /Users/bjeanes/.local/share/heroku/cli/bin/heroku cmd: commands
heroku-cli/5.2.12-09f3ecc (darwin-amd64) go1.6.2 /Users/bjeanes/.local/share/heroku/cli/bin/heroku cmd: config:get
--> GET /apps/mypgapp/config-vars
<-- 200 OK
<-- {"DATABASE_URL":"postgres://REDACTED@ec2-174-129-223-35.compute-1.amazonaws.com:5432/dfbe4e6vs4diqb"}
postgres://REDACTED@ec2-174-129-223-35.compute-1.amazonaws.com:5432/dfbe4e6vs4diqb

したがって、それをリクエストに変換し、次curlを使用して値を取得できますjq

$ curl -n -H 'Accept: application/vnd.heroku+json; version=3' \
    https://api.heroku.com/apps/mypgapp/config-vars | jq .DATABASE_URL
postgres://REDACTED@ec2-174-129-223-35.compute-1.amazonaws.com:5432/dfbe4e6vs4diqb

これは使用する API ではありませんheroku pg:credentials。実際には、Heroku 独自の非推奨のv2 API を使用していました。

于 2016-05-28T00:04:49.970 に答える