Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

173
Vistas
Error al intentar ejecutar semillas: Knex: se agotó el tiempo de adquisición de una conexión. La piscina probablemente esté llena

Recibo este error cada vez que ejecuto yarn knex seed:run :

Error al ejecutar la semilla "/home/user/path-to-the-file/my-seed.js": Knex: se agotó el tiempo de adquisición de una conexión. Probablemente la piscina esté llena. ¿Te estás perdiendo una llamada .transacting(trx)?

El problema es que le envío el proyecto a otras personas y pueden ejecutarlo normalmente, ya probé todas las respuestas al respecto en Internet, ya no sé qué hacer.

Configuración de mi base de datos:

 const config = Object.freeze({ client: 'pg', pool: { min: 0, max: 5, idleTimeoutMillis: 30000, createTimeoutMillis: 3000, acquireTimeoutMillis: 30000, reapIntervalMillis: 1000, createRetryIntervalMillis: 100, propagateCreateError: false }, connection: Object.freeze({ ...database }) })
  • Versión Knex: "^0.95.8"
  • versión pg: "^8.7.1"
  • Versión de hilo: 1.22.11
  • Versión del nodo: 14.17.4

Ya intenté degradar pg y node, no funcionó, nada funciona.

Hay un problema en el repositorio de Knex que dice que la actualización a la última pg lo resuelve, pero tampoco funcionó: https://github.com/knex/knex/issues/2820

¿Alguien me puede ayudar?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Una manera fácil de crear este error es hacer esto:

 const rows = []; for (let i = 0; i < 10000; i++) { rows.push({ name : `foo ${i}` }); } await Promise.all(rows.map(data => knex('user').insert(data)));

Hay infinitas formas de quedarse sin conexiones, pero la mayoría de los casos habituales son abrir demasiadas transacciones simultáneas o ejecutar una gran cantidad de consultas paralelas.

La mejor manera de averiguar la razón por la que sucede es eliminar partes del código problemático hasta que el error ya no ocurra y luego investigar por qué falla ese caso de prueba reducido.

Una buena manera de ver lo que knex está haciendo internamente es configurar la variable de entorno DEBUG=knex:* antes de ejecutar el código para que knex genere información sobre consultas, transacciones y conexiones de grupo mientras se ejecuta el código.

about 4 years ago · Juan Pablo Isaza Denunciar

0

se enfrentó a un problema similar, subió pg a 8.7.1 y funcionó

también nodo a 16.3.1 y knex a 0.95.11

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda