summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/default.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
-rw-r--r--lib/sqlalchemy/engine/default.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index bf023e319..f0ffd7797 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -24,7 +24,12 @@ class PoolConnectionProvider(base.ConnectionProvider):
dbapi = dialect.dbapi()
if dbapi is None:
raise exceptions.InvalidRequestError("Cant get DBAPI module for dialect '%s'" % dialect)
- self._pool = poolclass(lambda: dbapi.connect(*cargs, **cparams), **kwargs)
+ def connect():
+ try:
+ return dbapi.connect(*cargs, **cparams)
+ except Exception, e:
+ raise exceptions.DBAPIError("Connection failed", e)
+ self._pool = poolclass(connect, **kwargs)
else:
if isinstance(pool, sqlalchemy.pool.DBProxy):
self._pool = pool.get_pool(*cargs, **cparams)