Как вы находите параметры для conn = psycopg2.connect (имя_базы =, пользователь =, пароль =, хост =) - PullRequest
1 голос
/ 09 июня 2019

Я отправил приложение Python / Django в Heroku.Приложение использует базу данных Postgres.Теперь я хочу получить доступ к этой базе данных из Raspberry Pi, на котором запущена простая программа на Python, использующая

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

. Приложение изначально использовало SQLite, пока не было отправлено в Heroku.Как вы находите параметры для использования dbname=, user=, password=, host =?

Ответы [ 2 ]

2 голосов
/ 09 июня 2019

Heroku установит переменную окружения DATABASE_URL:

В процессе подготовки к конфигурации вашего приложения добавляется DATABASE_URL config var. Он содержит 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
0 голосов
/ 09 июня 2019
  1. Перейдите к https://data.heroku.com/
  2. Выберите базу данных.
  3. Выберите вкладку Настройки .
  4. Нажмите Просмотреть учетные данные .

Вы должны увидеть хост, имя базы данных, пользователя, порт и пароль.

См. Также: Учетные данные Heroku Postgres

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...