Heroku Postgres节点连接超时

时间:2020-04-24 07:14:50

标签: heroku heroku-postgres node-postgres heroku-ssl heroku-nodejs

我正在尝试从我的Heroku节点应用程序连接到Postgres数据库,该数据库在本地运行时可以通过节点运行,也可以通过运行heroku local web命令来运行,但是在Heroku上运行时,它会超时等待pool.connect

我正在通过Heroku控制台运行以下代码段(我也尝试过直接在我的应用程序中使用此代码,但这比每次重新部署都更有效):

node -e "
    const { Pool } = require('pg');

    const pool = new Pool({
    connectionTimeoutMillis: 15000,
      connectionString: process.env.DATABASE_URL + '?sslmode=require',
      ssl: {
        rejectUnauthorized: true
      }
    });

    console.log('pool created');
    (async() => {

     try {
        console.log('connecting');
        const client = await pool.connect(); // this never resolves
        console.log('querying');
        const { rows } = await client.query('SELECT * FROM test_table LIMIT 1;');
        console.log('query success', rows);
        client.release()
      } catch (error) {
        console.log('query error', error);
      }
    })()
"

到目前为止我已经尝试过的事情:

  • 使用pg Client代替Pool
  • 使用ssl: true代替ssl: { rejectUnauthorized: true }
  • 使用client.query而不使用pool.connect
  • 增加和省略connectionTimeoutMillis(由于在查询只有一行的数据库时,它在本地运行时可以快速解决)
  • 我也尝试过使用回调和Promise代替async / await
  • 我尝试使用?sslmode=require参数和不使用参数来设置connectionString
    • 到目前为止,我已经尝试使用pg版本^7.4.1^7.18.2

我的假设是,Heroku设置或SSL缺少某些内容,将不胜感激,谢谢!

0 个答案:

没有答案