Browse Source

bitbake: hashserv: Re-enable connection pooling with psycopg 3 driver

Re-enable connection pooling in case `postgresql+psygopg` driver
is used. Async connection pooling is supported in psycopg 3 [psycopg]
driver in SQLAlchemy. Allow the connection pool to grow to
arbitrary size.

(Bitbake rev: 4fe05513b5314c201725e3f8ad54f58d70c56258)

Signed-off-by: Tobias Hagelborn <tobiasha@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tobias Hagelborn 1 year ago
parent
commit
42242fb9ef
1 changed files with 5 additions and 1 deletions
  1. 5 1
      bitbake/lib/hashserv/sqlalchemy.py

+ 5 - 1
bitbake/lib/hashserv/sqlalchemy.py

@@ -129,7 +129,11 @@ class DatabaseEngine(object):
             return inspect(conn).has_table(name)
 
         self.logger.info("Using database %s", self.url)
-        self.engine = create_async_engine(self.url, poolclass=NullPool)
+        if self.url.drivername == 'postgresql+psycopg':
+            # Psygopg 3 (psygopg) driver can handle async connection pooling
+            self.engine = create_async_engine(self.url, max_overflow=-1)
+        else:
+            self.engine = create_async_engine(self.url, poolclass=NullPool)
 
         async with self.engine.begin() as conn:
             # Create tables