我将Python / Django应用程序推送到Heroku。该应用程序使用Postgres数据库。现在,我想从运行Raspberry Pi的Raspberry Pi使用简单的Python程序访问该数据库,
conn = psycopg2.connect(dbname=, user=, password=, host = )
该应用最初使用SQLite,直到被推送到Heroku。
您如何找到用于dbname=, user=, password=, host =
的参数?
答案 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)
您应该能够看到主机,数据库名称,用户,端口和密码。