django-clickhouse/src/django_clickhouse/db_clients.py

30 lines
659 B
Python
Raw Normal View History

from infi.clickhouse_orm.database import Database
from .exceptions import DBAliasError
from .configuration import config
2018-11-15 15:37:58 +03:00
DEFAULT_DB_ALIAS = 'default'
class ConnectionProxy:
_connections = {}
def get_connection(self, alias):
2018-11-15 15:37:58 +03:00
if alias is None:
alias = DEFAULT_DB_ALIAS
if alias not in self._connections:
if alias not in config.DATABASES:
raise DBAliasError(alias)
self._connections[alias] = Database(**config.DATABASES[alias])
return self._connections[alias]
2018-11-15 15:37:58 +03:00
def __getitem__(self, item):
return self.get_connection(item)
connections = ConnectionProxy()