• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

1.7K
Views
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 3 years ago · Santiago Trujillo
2 answers
Answer question

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 3 years ago · Santiago Trujillo Report

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 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error