cic-stack/apps/cic-cache/cic_cache/db/__init__.py

46 lines
1.2 KiB
Python
Raw Normal View History

2021-02-18 06:04:30 +01:00
# standard imports
import logging
# local imports
from .list import (
list_transactions_mined,
list_transactions_account_mined,
add_transaction,
tag_transaction,
add_tag,
)
2022-01-04 17:01:01 +01:00
from cic_cache.db.models.base import SessionBase
2021-02-18 06:04:30 +01:00
logg = logging.getLogger()
2022-01-04 17:01:01 +01:00
def dsn_from_config(config, name):
2021-02-18 06:04:30 +01:00
scheme = config.get('DATABASE_ENGINE')
if config.get('DATABASE_DRIVER') != None:
scheme += '+{}'.format(config.get('DATABASE_DRIVER'))
2022-01-04 17:01:01 +01:00
database_name = name
if config.get('DATABASE_PREFIX'):
database_name = '{}_{}'.format(config.get('DATABASE_PREFIX'), database_name)
2021-02-18 06:04:30 +01:00
dsn = ''
if config.get('DATABASE_ENGINE') == 'sqlite':
2022-01-04 17:01:01 +01:00
SessionBase.poolable = False
2021-02-18 06:04:30 +01:00
dsn = '{}:///{}'.format(
scheme,
2022-01-04 17:01:01 +01:00
database_name,
2021-02-18 06:04:30 +01:00
)
else:
dsn = '{}://{}:{}@{}:{}/{}'.format(
scheme,
config.get('DATABASE_USER'),
config.get('DATABASE_PASSWORD'),
config.get('DATABASE_HOST'),
config.get('DATABASE_PORT'),
2022-01-04 17:01:01 +01:00
database_name,
2021-02-18 06:04:30 +01:00
)
logg.debug('parsed dsn from config: {}'.format(dsn))
return dsn