【问题标题】:Knex: Timeout acquiring a connection when running `knex migrate`Knex:运行“knex migrate”时获取连接超时
【发布时间】:2020-07-23 10:55:41
【问题描述】:

我正在运行./node_modules/.bin/knex migrate:latest --env local

这会导致以下错误:

> knex migrate:latest --env local

Requiring external module ts-node/register
Using environment: local
TimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
at /Users/ashok/src/super-abs/alpha/server/node_modules/knex/lib/client.js:318:17
    at tryCatcher (/Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/util.js:16:23)
    at /Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/catch_filter.js:17:41
    at tryCatcher (/Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/promise.js:725:18)
    at _drainQueueStep (/Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/ashok/src/super-abs/alpha/server/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:456:21)

我什至尝试过删除数据库并重新运行。

是否有我需要以某种方式清除的连接?我的应用没有运行。

使用以下

"knex": "0.19.0",

节点-v:v14.0.0

psql (PostgreSQL) 11.7

【问题讨论】:

  • 我还运行了pg_ctl -D /usr/local/var/postgres restart 来重新启动 postgres。仍然遇到同样的问题。
  • github.com/knex/knex/issues/3831 升级 node-pg 到 8 可以工作。

标签: node.js postgresql knex.js


【解决方案1】:

只需降级到节点版本 13.11.0 即可解决此问题:

sudo npm install -g n
sudo n 13.11.0
knex migrate:latest
#  Requiring external module ts-node/register
#  Using environment: local
#  Batch 1 run: 63 migrations

是的。

【讨论】:

    【解决方案2】:
    Knex: Timeout acquiring a connection. The pool is probably full...
    

    升级 pg@8.3.0 解决了这个问题。
    环境:
    节点 14.6
    第 7.8 页
    "knex": "^0.20.10",

    https://github.com/knex/knex/issues/3912
    https://github.com/knex/knex/issues/3912#issuecomment-657715661

    【讨论】:

      猜你喜欢
      • 2020-11-04
      • 2022-01-18
      • 2021-05-11
      • 2019-12-07
      • 1970-01-01
      • 2021-12-01
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多