使用续集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]
任何帮助将不胜感激。 提前致谢!
我能在这里解决我的问题。 本质上,我通过在环境中正确设置以下内容来解决它:
- 格式化正确的URI – (遵循上面的语法,我能够得到它的工作)
- 为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,其他一切都是空白的。