diff options
| author | Andrew <saintruler@gmail.com> | 2019-07-21 12:14:09 +0400 |
|---|---|---|
| committer | Andrew <saintruler@gmail.com> | 2019-07-21 12:14:09 +0400 |
| commit | 2305ced85888a23f86ecfcdfb64a3b69c4997a4c (patch) | |
| tree | 9d5cc4ad1c322ca2bf46b990498ad0a79d508aff /day9/task5_vue/backend/database/database.py | |
| parent | 8c8712f0e6b165f6967f5d2958f300df6182296c (diff) | |
Переписан бекенд. Добавлена валидация при обновлении значений в ряду.
Удалена предыдущая версия приложения без vue.
Diffstat (limited to 'day9/task5_vue/backend/database/database.py')
| -rw-r--r-- | day9/task5_vue/backend/database/database.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/day9/task5_vue/backend/database/database.py b/day9/task5_vue/backend/database/database.py new file mode 100644 index 0000000..87982cf --- /dev/null +++ b/day9/task5_vue/backend/database/database.py @@ -0,0 +1,29 @@ +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 = {} |