diff options
| -rw-r--r-- | lib/sqlalchemy/engine.py | 5 | ||||
| -rw-r--r-- | lib/sqlalchemy/pool.py | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py index 65de2f775..054c5853c 100644 --- a/lib/sqlalchemy/engine.py +++ b/lib/sqlalchemy/engine.py @@ -183,6 +183,11 @@ class SQLEngine(schema.SchemaEngine): else: self.logger = logger + def dispose(self): + """disposes of the underlying pool manager for this SQLEngine.""" + (cargs, cparams) = self.connect_args() + sqlalchemy.pool.manage(self.dbapi()).dispose(*cargs, **cparams) + def _set_paramstyle(self, style): self._paramstyle = style self._figure_paramstyle(style) diff --git a/lib/sqlalchemy/pool.py b/lib/sqlalchemy/pool.py index 16b4a981f..699aadb04 100644 --- a/lib/sqlalchemy/pool.py +++ b/lib/sqlalchemy/pool.py @@ -229,6 +229,14 @@ class DBProxy(object): be created, a new database connection will be made.""" return self.get_pool(*args, **params).connect() + def dispose(self, *args, **params): + """disposes the connection pool referenced by the given connect arguments.""" + key = self._serialize(*args, **params) + try: + del self.pools[key] + except KeyError: + pass + def _serialize(self, *args, **params): return cPickle.dumps([args, params]) |
