@@ -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
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. Signed-off-by: Tobias Hagelborn <tobiasha@axis.com> --- Added unlimited pool size. Validated with local stress tests and real builds. lib/hashserv/sqlalchemy.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)