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

Jam*_*mes 6 javascript postgresql amazon-web-services node.js sequelize.js

我目前正致力于将Heroku中设置的环境迁移到Amazon Web Services堆栈(RDS PostgreSQL,Elastic Beanstalk).

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

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

我可以通过pgAdmin连接到数据库,所以我知道该服务正在运行,并且以下配置适用于Heroku:

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

DATABASE_URI的格式如下:

postgres://[db_username]:[db_password]@[hostname]:[port]/[db_name]
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*mes 4

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

  1. 正确格式化 URI -(按照上面的语法,我能够让它工作)
  2. 为 Amazon RDS 和 Elastic Beanstalk 启用安全规定 - 我必须为运行 Elastic Beanstalk 的安全组/实例角色启用对 Amazon RDS 实例的入站访问。(我发现我能够通过本地计算机访问 RDS。默认情况下,RDS 似乎设置了您正在使用的 IP,以便能够使用它......这是有道理的......)