gpt4 book ai didi

postgresql - Flask 应用程序 AWS Postgres 连接在本地工作但在 Heroku 上不工作

转载 作者:行者123 更新时间:2023-11-29 13:11:15 24 4
gpt4 key购买 nike

我的 Flask 应用程序 AWS Postgres 连接在本地有效,但在 Heroku 上无效。该应用程序适用于 Heroku,但它不会获取/发送数据到 AWS Postgres。

Heroku 日志指出端点在双引号中的问题。我不确定如何解决这个问题,因为我正在使用使用 psycopg2 的 SQLAlchemy。我没有直接使用 psycopg2。

我的 AWS 安全组设置为所有入站 IP。

更改 AWS 以接受所有入站 IP。用谷歌搜索直到所有链接都是紫色的。很难搜索“double double quotes”并得到好的结果。

来自 Heroku 日志的错误:主机名在双引号中,这可能是问题所在

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) could not 
translate host name ""xxxx.xxxx.us-east-
2.rds.amazonaws.com"" to address: Name or service not known

我的 DB_URI 环境变量:

'postgres://username:password@awsdbname.*******.us-east- 
2.rds.amazonaws.com/dbname'

AWS 安全

PostgreSQL TCP 5432 0.0.0.0/0 Anywhere-Delete
PostgreSQL TCP 5432 ::/0 Anywhere-Delete
I will change this when in production.

编辑:连接代码:

def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(Config)

db.init_app(app)

class Config:
SECRET_KEY = os.environ.get('SECRET_KEY')
# SQLALCHEMY_DATABASE_URI = os.environ.get('SQLALCHEMY_DATABASE_URI')
SQLALCHEMY_DATABASE_URI = f"postgres://{os.environ.get('AWS_DB_USER')}:{os.environ.get('AWS_DB_PASS')}@{os.environ.get('AWS_DB_ENDPOINT')}/mydb"

class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
image_file = db.Column(db.String(20), nullable=False, default='default.jpg')
password = db.Column(db.String(60), nullable=False)
posts = db.relationship('Post', backref='author', lazy=True)

在本地运行完全相同的代码。我的数据库是可读/可写的。在 Heroku 上运行我的应用程序加载但不读/写到 Postgres。这指向权限问题,但我已允许 AWS 上的所有入站流量。任何帮助,将不胜感激。不确定为什么 psycopg2 会在本地正确解析,但在 Heroku 上却不能。

最佳答案

解决方案:更改 Heroku 中的 DB_URI 配置变量。我在 Heroku 中删除了环境变量周围的引号。这仍然很奇怪,因为一些帖子建议 Heroku 配置变量需要引号。我仍然不知道为什么它在本地有效但在生产中无效。希望这可以帮助别人。

关于postgresql - Flask 应用程序 AWS Postgres 连接在本地工作但在 Heroku 上不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54369729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com