获取heroku数据库地址和凭据,而不是DATABASE_URL

时间:2018-10-28 19:41:54

标签: heroku heroku-postgres

我正在部署一个要求将数据库信息作为单独的args传递的应用程序,例如

$ someapp --db-host=example.com --db-port=5433 --db-name=mydb --db-user=me --db-password=mypass

查看heroku提供的内容时,似乎唯一可用的东西就是DATABASE_URL。我当然可以在Procfile中解析其值并提取所有必要的内容,目前我正在考虑使用类似小助手脚本的内容,例如parse_db_url.py

#!/usr/bin/env python3
import os
from sqlalchemy.engine.url import make_url


if __name__ == '__main__':
    url = make_url(os.environ.get('DATABASE_URL'))
    env = f'''PG_USER={url.username}
PG_PASSWORD={url.password}
PG_HOST={url.host}
PG_PORT={url.port}
PG_DBNAME={url.database}'''
    print(env)

并将其eval Procfile

web: eval $(python parse_db_url.py) && someapp --db-host=$PG_HOST ...

等等,但这是正确的方法还是我只是忽略了某些东西?如果这是相关的,我正在免费计划atm上进行测试,但是在对部署感到满意时转向了一项业余计划。

0 个答案:

没有答案