From 463d595e90a4e0860225a87b2477ead882832eb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Brunner?= Date: Tue, 3 Oct 2023 15:55:11 +0200 Subject: [PATCH] Call later to fix SQLAlchemy error sqlalchemy.exc.InvalidRequestError: This session is provisioning a new connection; concurrent operations are not permitted (Background on this error at: https://sqlalche.me/e/20/isce) --- c2cwsgiutils/request_tracking/_sql.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/c2cwsgiutils/request_tracking/_sql.py b/c2cwsgiutils/request_tracking/_sql.py index e06d78222..e0f9585a6 100644 --- a/c2cwsgiutils/request_tracking/_sql.py +++ b/c2cwsgiutils/request_tracking/_sql.py @@ -5,7 +5,7 @@ from sqlalchemy.orm import Session -def _add_session_id(session: Session, _transaction: Any, _connection: Any) -> None: +def _add_session_id(session: Session, _transaction: Any) -> None: request = get_current_request() if request is not None: session.execute( @@ -15,4 +15,5 @@ def _add_session_id(session: Session, _transaction: Any, _connection: Any) -> No def init() -> None: """Initialize the SQL alchemy session selector.""" - sqlalchemy.event.listen(Session, "after_begin", _add_session_id) + + sqlalchemy.event.listen(Session, "after_transaction_create", _add_session_id)