2018-11-15 14:50:38 +03:00
|
|
|
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'
|
|
|
|
|
|
|
|
|
2018-11-15 14:50:38 +03:00
|
|
|
class ConnectionProxy:
|
|
|
|
_connections = {}
|
|
|
|
|
|
|
|
def get_connection(self, alias):
|
2018-11-15 15:37:58 +03:00
|
|
|
if alias is None:
|
|
|
|
alias = DEFAULT_DB_ALIAS
|
|
|
|
|
2018-11-15 14:50:38 +03:00
|
|
|
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):
|
2018-11-15 14:50:38 +03:00
|
|
|
return self.get_connection(item)
|
|
|
|
|
|
|
|
|
|
|
|
connections = ConnectionProxy()
|