diff options
Diffstat (limited to 'lib/sqlalchemy/engine/create.py')
-rw-r--r-- | lib/sqlalchemy/engine/create.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/sqlalchemy/engine/create.py b/lib/sqlalchemy/engine/create.py index 985a12fa0..dc895ee15 100644 --- a/lib/sqlalchemy/engine/create.py +++ b/lib/sqlalchemy/engine/create.py @@ -627,9 +627,9 @@ def create_engine(url, **kwargs): ) if conn is None: return + do_on_connect(conn) - event.listen(pool, "first_connect", on_connect) event.listen(pool, "connect", on_connect) def first_connect(dbapi_connection, connection_record): @@ -640,9 +640,17 @@ def create_engine(url, **kwargs): dialect.initialize(c) dialect.do_rollback(c.connection) - event.listen( - pool, "first_connect", first_connect, _once_unless_exception=True - ) + if do_on_connect: + event.listen( + pool, "connect", first_connect, _once_unless_exception=True + ) + else: + event.listen( + pool, + "first_connect", + first_connect, + _once_unless_exception=True, + ) dialect_cls.engine_created(engine) if entrypoint is not dialect_cls: |