如何解决在heroku / dash
我通过破折号/情节创建了一个小应用程序并将其部署到heroku。破折号/密谋当地工作正常。 heroku应用程序可以正确启动,但是我无法从本地数据库中生成任何数据。
使用“ heroku logs --tail”命令,可以看到与数据库的连接被拒绝:
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) 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?
程序如下:
import dash
import dash_table
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Output,Input,State
import plotly.graph_objects as go
import psycopg2
from sqlalchemy import create_engine
import os
app = dash.Dash(__name__)
server = app.server
DATABASE_URL = os.environ['DATABASE_URI']
db = create_engine(DATABASE_URL)
def get_data():
df = pd.read_sql_query("SELECT * FROM mytable",con=db)
return df.iloc[0][0] #<- just an example
app.layout = (...)
if __name__ == '__main__':
app.run_server(debug=False)
在heroku仪表板的设置下,我创建了一个config var(使用正确的{username} / {password} / {database-name}:
DATABASE_URI
postgresql://{username}:{password}@localhost:5432/{database-name}
给出错误消息,感觉好像正确使用了这个DATABASE_URI变量(它可以识别localhost / port 5432),但是我应该将此配置变量添加到我的环境(mac OS)中吗?还是我的代码缺少声明?我确实在heroku中安装了postgresql插件,但是由于数据库是本地数据库,因此我认为这在这里没有用。
编辑:如果我使用以下命令,则会从日志中得到相同的错误(但这次应用程序甚至无法启动)
DATABASE_URL = os.environ['DATABASE_URI']
db = psycopg2.connect(DATABASE_URL,sslmode='require')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。