summaryrefslogtreecommitdiff
path: root/app/backend/rcal/db.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/backend/rcal/db.py')
-rw-r--r--app/backend/rcal/db.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/backend/rcal/db.py b/app/backend/rcal/db.py
new file mode 100644
index 0000000..7e892a1
--- /dev/null
+++ b/app/backend/rcal/db.py
@@ -0,0 +1,34 @@
+import json
+from os import path
+
+import sqlalchemy.engine.url as url
+from sqlalchemy import create_engine
+from sqlalchemy.orm import sessionmaker
+
+
+class Session(object):
+
+ engine = None
+
+ def __init__(self):
+ config = json.load(
+ open(path.join(path.dirname(
+ path.realpath(__file__)), '..', 'config', 'db.json')))
+ db_str = url.URL(
+ drivername=config['type'],
+ host=config['host'],
+ username=config['user'],
+ password=config['pass'],
+ database=config['name'],
+ query={'charset': config['cset']}
+ )
+ self.engine = create_engine(db_str, encoding=config['cset'])
+
+ def get_maker(self):
+ return sessionmaker(bind=self.engine)
+
+ @staticmethod
+ def create():
+ session = Session()
+ maker = session.get_maker()
+ return maker()