From 5e553ffaf7028db8d322283de53ad3f878f9d29e Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Thu, 24 Nov 2011 00:59:43 -0800 Subject: [PATCH] Added reconnect back into the syntax forces a disconnect. --- mongoengine/connection.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/mongoengine/connection.py b/mongoengine/connection.py index 07b730b8..1c0504a3 100644 --- a/mongoengine/connection.py +++ b/mongoengine/connection.py @@ -45,9 +45,23 @@ def register_connection(alias, name, host='localhost', port=27017, } -def get_connection(alias=DEFAULT_CONNECTION_NAME): +def disconnect(alias=DEFAULT_CONNECTION_NAME): + global _connections + global _dbs + + if alias in _connections: + get_connection(alias=alias).disconnect() + del _connections[alias] + if alias in _dbs: + del _dbs[alias] + + +def get_connection(alias=DEFAULT_CONNECTION_NAME, reconnect=False): global _connections # Connect to the database if not already connected + if reconnect: + disconnect(alias) + if alias not in _connections: if alias not in _connection_settings: msg = 'Connection with alias "%s" has not been defined' @@ -70,8 +84,11 @@ def get_connection(alias=DEFAULT_CONNECTION_NAME): return _connections[alias] -def get_db(alias=DEFAULT_CONNECTION_NAME): +def get_db(alias=DEFAULT_CONNECTION_NAME, reconnect=False): global _dbs + if reconnect: + disconnect(alias) + if alias not in _dbs: conn = get_connection(alias) conn_settings = _connection_settings[alias]