summaryrefslogtreecommitdiff
path: root/day9/task5_vue/backend/database/database.py
diff options
context:
space:
mode:
authorAndrew <saintruler@gmail.com>2019-07-21 12:14:09 +0400
committerAndrew <saintruler@gmail.com>2019-07-21 12:14:09 +0400
commit2305ced85888a23f86ecfcdfb64a3b69c4997a4c (patch)
tree9d5cc4ad1c322ca2bf46b990498ad0a79d508aff /day9/task5_vue/backend/database/database.py
parent8c8712f0e6b165f6967f5d2958f300df6182296c (diff)
Переписан бекенд. Добавлена валидация при обновлении значений в ряду.
Удалена предыдущая версия приложения без vue.
Diffstat (limited to 'day9/task5_vue/backend/database/database.py')
-rw-r--r--day9/task5_vue/backend/database/database.py29
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 = {}