Ошибка подключения к БД для портов с Psycopg2 и Python - PullRequest
0 голосов
/ 16 сентября 2018

Довольно плохо знаком с разработкой - я вижу следующую ошибку при развертывании моего .py скрипта. Я ссылался на мои кредиты следующим образом:

справка:

# Postgresql initialization
connection = psycopg2.connect(
    host= "Host",
    dbname= "Database",
    port= "Port",
    user= "User",
    password= "Password")

Сообщение об ошибке:

error:
    2018-09-16T18:19:45.000000+00:00 app[api]: Build succeeded
    2018-09-16T18:19:46.501301+00:00 heroku[web.1]: Process exited with status 1
    2018-09-16T18:19:46.521042+00:00 heroku[web.1]: State changed from starting to crashed
    2018-09-16T18:19:46.408361+00:00 app[web.1]: /app/.heroku/python/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
    2018-09-16T18:19:46.408378+00:00 app[web.1]:   """)
    2018-09-16T18:19:46.409434+00:00 app[web.1]: Traceback (most recent call last):
    2018-09-16T18:19:46.409439+00:00 app[web.1]:   File "app.py", line 24, in <module>
    2018-09-16T18:19:46.409629+00:00 app[web.1]:     password= "Password")
    2018-09-16T18:19:46.409631+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/psycopg2/__init__.py", line 130, in connect
    2018-09-16T18:19:46.409824+00:00 app[web.1]:     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
    2018-09-16T18:19:46.409851+00:00 app[web.1]: psycopg2.OperationalError: invalid port number: "Port"
    2018-09-16T18:19:46.409855+00:00 app[web.1]:

Кто-нибудь может помочь? Почему у меня проблема с перебросом порта?

1 Ответ

0 голосов
/ 17 сентября 2018

В предоставленном коде вы передаете строки, которые не имеют отношения к установлению соединения.Вместо этого вы должны читать URL, пароль, порт и т. Д. Из среды.Фактически, Heroku объединяет все это в строку подключения от вашего имени.Попробуйте это ( документация на герою ):

DATABASE_URL = os.environ['DATABASE_URL']

conn = psycopg2.connect(DATABASE_URL, sslmode='require')
...