Added reconnect back into the syntax

forces a disconnect.
This commit is contained in:
Ross Lawley 2011-11-24 00:59:43 -08:00
parent 6d185b7f7a
commit 5e553ffaf7

View File

@ -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]