Fix multiple connections aliases being rewritten

This commit is contained in:
Bob Cribbs
2014-08-28 18:42:14 +03:00
parent 3503c98857
commit d9da75d1c0
3 changed files with 18 additions and 4 deletions

View File

@@ -111,13 +111,14 @@ def get_connection(alias=DEFAULT_CONNECTION_NAME, reconnect=False):
try:
connection = None
connection_settings_iterator = ((alias, settings.copy()) for alias, settings in _connection_settings.iteritems())
for alias, connection_settings in connection_settings_iterator:
# check for shared connections
connection_settings_iterator = ((db_alias, settings.copy()) for db_alias, settings in _connection_settings.iteritems())
for db_alias, connection_settings in connection_settings_iterator:
connection_settings.pop('name', None)
connection_settings.pop('username', None)
connection_settings.pop('password', None)
if conn_settings == connection_settings and _connections.get(alias, None):
connection = _connections[alias]
if conn_settings == connection_settings and _connections.get(db_alias, None):
connection = _connections[db_alias]
break
_connections[alias] = connection if connection else connection_class(**conn_settings)