Тайм-аут соединения с узлом postgres в Heroku
Я пытаюсь подключиться к базе данных Postgres из моего приложения узла Heroku, которое работает при локальном запуске как через узел, так и при запуске 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
(он быстро разрешается при локальном запуске, поскольку я запрашиваю базу данных, в которой есть только одна строка) - Я также пробовал использовать обратные вызовы и обещания вместо async / await
- Я пробовал установить connectionString как с
?sslmode=require
параметр и без него- Я пробовал использовать версии pg
^7.4.1
а также^7.18.2
уже
- Я пробовал использовать версии pg
Я предполагаю, что мне чего-то не хватает в настройке Heroku или SSL, любая помощь будет принята с благодарностью, спасибо!