如何找到conn = psycopg2.connect(dbname =,user =,password =,host =)的参数

时间:2019-06-09 14:39:45

标签: python postgresql heroku

我将Python / Django应用程序推送到Heroku。该应用程序使用Postgres数据库。现在,我想从运行Raspberry Pi的Raspberry Pi使用简单的Python程序访问该数据库,

conn = psycopg2.connect(dbname=, user=, password=, host = )

该应用最初使用SQLite,直到被推送到Heroku。 您如何找到用于dbname=, user=, password=, host =的参数?

2 个答案:

答案 0 :(得分:2)

Heroku将set an environment variable DATABASE_URL

  

在供应过程中,将DATABASE_URL配置变量添加到您应用的配置中。它包含您的应用程序用来访问数据库的URL。

您应该使用它进行连接,因为您的凭据可能会更改,恕不另行通知。 psycopg2可以直接使用此值,例如

import os
import psycopg2

database_url = os.getenv(
    'DATABASE_URL',
    default='postgres://localhost/postgres',  # E.g., for local dev
)

connection = psycopg2.connect(database_url)

编辑:您的Raspberry Pi应用程序无法直接访问它,但是您可以使用Heroku CLI来查询您的配置变量:

heroku config:get DATABASE_URL --app your-heroku-app-name

类似的事情应该在最新版本的Python中起作用:

import subprocess

database_url = subprocess.run(
    ['heroku', 'config:get', 'DATABASE_URL', '--app', 'your-heroku-app-name'],
    stdout=subprocess.PIPE,
).stdout

答案 1 :(得分:0)

  1. 导航到https://data.heroku.com/
  2. 选择数据库。
  3. 选择“设置” 标签。
  4. 点击查看凭据

您应该能够看到主机,数据库名称,用户,端口和密码。

另请参阅:Heroku Postgres Credentials