我正在尝试在Heroku上部署基于PostgreSQL的Flask应用程序,但是当我尝试使用db.create_all()
创建表时,我一直收到此错误:
(psycopg2.OperationalError) could not connect t
rver: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
以下是我的代码的样子:
app=Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']='postgres://kfgriimpfjecsv:Bk1*****G@localhost:5432/dd71doth8gopgh'
db=SQLAlchemy(app)
if __name__ == '__main__':
app.debug=True
app.run()
我正在使用Heroku Toolbelt与Heroku服务器进行通信。此外,当我尝试这个:
psql -p 5432 -h localhost
我得到了几乎相同的错误:
psql: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
我还在URI中尝试了ec2-23-21-215-184.compute-1.amazonaws.com
而不是localhost
,但却遇到了同样的错误。
here是我运行db.create_all()时得到的完整回溯:
知道连接被拒绝的原因以及如何解决这个问题?
答案 0 :(得分:0)
似乎我必须将sslmode参数附加到数据库URI,因此将第二行更改为以下内容解决了问题:
app.config['SQLALCHEMY_DATABASE_URI']= "postgresql+psycopg2://kfgriimpfjecsv:Bk1*******G@ec2-23-21-215-184.compute-1.amazonaws.com:5432/dd71doth8gopgh?sslmode=require"