from backend.database.wrappers import Wrapper, MySQLWrapper import logging def initialize_databases(configs, schemes): for config in configs: if config['type'] == 'mysql': logger = logging.getLogger('backendDebug') logger.debug('Connected') logger.debug(f'Trying to connect to database "{config["db_name"]}@{config["host"]}"...') wrapper = MySQLWrapper(config['host'], config['username'], config['password'], config['db_name']) wrappers[config['name']] = wrapper cursor = wrapper.connection.cursor() for scheme in schemes: logger.debug(f'Preparing table "{scheme.meta["name"]}"...') cursor.execute('START TRANSACTION; {} COMMIT;'.format(scheme.get_create_line())) wrapper.schemes[scheme.meta['name']] = scheme cursor.close() def get_wrapper_for(database_name) -> Wrapper: return wrappers.get(database_name, None) wrappers = {}