PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Knex.js erzwingt die Wiederverwendung von Sitzungen für 4 folgende Abfragen

Grundsätzlich können Sie dies nur tun, indem Sie diese Abfragen in derselben Transaktion ausführen. Das zwingt Knex, dieselbe Verbindung für alle Abfragen zu verwenden.

Eine andere Möglichkeit besteht darin, die Verbindung vom Pool manuell mit knex.client.aqcuireConnection() zu erhalten und verwenden Sie knex.connection(connection) um Abfragen in dieser einzelnen Verbindung auszuführen. Schließlich müssen Sie die Verbindung wieder zum Pool freigeben, um Verbindungen mit knex.client.releaseConnection(connection) nicht zu verlieren .

Etwas wie:

let connection = await knex.client.acquireConnection();
try {
    const res = await knex('table').connection(connection).where('id',1);
    const res2 = await knex('table2').connection(connection).where('id',1);
} finally {
    knex.client.releaseConnection(connection);
}