【问题标题】:Unable to connect to Heroku postgre SQL database locally无法在本地连接到 Heroku postgreSQL 数据库
【发布时间】:2016-09-06 18:31:22
【问题描述】:

我正在尝试像这样在本地连接到 Heroku postgre SQL 数据库,

from flask import Flask
import sys
import psycopg2
import urlparse

urlparse.uses_netloc.append("postgres")
url = urlparse.urlparse("postgres://url")

conn = psycopg2.connect(
    database=url.path[1:],
    user=url.username,
    password=url.password,
    host=url.hostname,
    port=url.port
)

但经过长时间的停顿后,我收到以下错误,

psycopg2.OperationalError: could not connect to server: Connection timed out
    Is the server running on host "URL" (IP) and accepting
    TCP/IP connections on port 5432?

如何修复此错误并在本地连接到数据库?

【问题讨论】:

    标签: python postgresql heroku


    【解决方案1】:

    缩小范围对我来说有点困难,但我可以通过以下步骤设置类似的内容:

    如果你有一个“server.py”,请确保在文件顶部有这个:

    from dotenv import load_dotenv, find_dotenv
    import os
    
    load_dotenv(find_dotenv())
    db = pg.DB(
      dbname=os.environ.get('DBNAME'),
      host=os.environ.get('DBHOST'),
      port=int(os.environ.get('DBPORT')),
      user=os.environ.get('DBUSER'),
      passwd=os.environ.get('DBPASSWORD')
    )
    

    将以下内容转储到 Procfile 中(完全一样的拼写 Procfile)

    web: gunicorn -b 0.0.0.0:$PORT -w 4 server:app
    

    最后,您需要一个列出您已安装的所有 Python 模块的 requirements.txt。您可以使用以下命令执行此操作:pip freeze > requirements.txt

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-03-30
      • 2013-04-19
      • 2021-09-25
      • 2013-04-05
      • 2015-05-26
      • 2014-03-04
      • 2020-05-30
      • 1970-01-01
      • 2020-11-05
      相关资源
      最近更新 更多