在节点红色中使用“ sequelize”和“ pg”时,Heroku postgres节点连接超时

时间:2020-06-01 22:24:55

标签: javascript postgresql async-await sequelize.js

我正在尝试从我的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

0 个答案:

没有答案