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

Postgresql Flask应用程序AWS Postgres连接在本地工作,但在Heroku上不工作,postgresql,amazon-web-services,heroku,flask,sqlalchemy,Postgresql,Amazon Web Services,Heroku,Flask,Sqlalchemy,我的Flask应用程序AWS Postgres连接在本地工作,但在Heroku上不工作。该应用程序可以在Heroku上运行,但不能获取/发送数据到AWS Postgres Heroku日志指出了端点位于双引号中的问题。我不确定如何解决这个问题,因为我使用的是使用psycopg2的SQLAlchemy。我没有直接使用psycopg2 我的AWS安全组设置为所有入站IP 已将AWS更改为接受所有入站IP。谷歌搜索到所有链接都是紫色。很难搜索“双引号”并得到一个好结果 Heroku日志错误:主机名在双

我的Flask应用程序AWS Postgres连接在本地工作,但在Heroku上不工作。该应用程序可以在Heroku上运行,但不能获取/发送数据到AWS Postgres

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

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

已将AWS更改为接受所有入站IP。谷歌搜索到所有链接都是紫色。很难搜索“双引号”并得到一个好结果

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配置变量需要引号。我仍然不知道为什么它在本地工作,但在生产中却不起作用。希望这对其他人有帮助

除了已共享的配置之外,您是否可以在尝试建立连接的位置共享代码?请按请求添加更多代码。连接应由Alchemy和psycopg2处理。