使用续集ORM连接到node.js上的Amazon RDS Postgres数据库的问题

我目前正在将在Heroku中设置的环境迁移到Amazon Web服务堆栈(RDS PostgreSQL,Elastic Beanstalk)。

尝试通过sequelize.js ORM连接到PostgreSQL时,我遇到了一些问题。 错误信息如下:

未处理的拒绝SequelizeHostNotFoundError:getaddrinfo ENOTFOUND [host]。

我可以通过pgAdmin连接到数据库,所以我知道服务正在工作,并且以下configuration在Heroku上工作:

sequelize = new Sequelize(process.env.DATABASE_URI, { dialect: 'postgres', protocol: 'postgres', logging: true, timestamps: false }) 

DATABASE_URI格式如下:

 postgres://[db_username]:[db_password]@[hostname]:[port]/[db_name] 

任何帮助将不胜感激。 提前致谢!

       

网上收集的解决方案 "使用续集ORM连接到node.js上的Amazon RDS Postgres数据库的问题"

我能在这里解决我的问题。 本质上,我通过在环境中正确设置以下内容来解决它:

  1. 格式化正确的URI – (遵循上面的语法,我能够得到它的工作)
  2. 为Amazon RDS和Elastic Beanstalk启用安全规定 – 我必须启用对运行Elastic Beanstalk的安全组/实例angular色的Amazon RDS实例的入站访问。 (我陷入了事实,我能够通过我的本地计算机击中RDS,默认情况下,RDS似乎设置了您正在使用的IP以便能够使用它…这是合理的..)

我有一个非常类似的问题,事实certificate我的密码中有一个问号 – 导致密码的一半和连接URL的其余部分被忽略(显然是URLsearch部分的一部分)。

就像是:

 new Sequelize("postgres://fred:xj78?23@example.com/db"); 

我们最终用户名:fred,密码:xj78,其他一切都是空白的。