From d7af2b51abe441425b2946a0ed4a011268605059 Mon Sep 17 00:00:00 2001 From: gryf Date: Sat, 19 Nov 2016 07:50:05 +0100 Subject: [PATCH] Added db module --- slack_backup/db.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 slack_backup/db.py diff --git a/slack_backup/db.py b/slack_backup/db.py new file mode 100644 index 0000000..ca26e06 --- /dev/null +++ b/slack_backup/db.py @@ -0,0 +1,34 @@ +""" +Common db functions +""" +from sqlalchemy import MetaData, create_engine +from sqlalchemy.orm import sessionmaker +from sqlalchemy.ext.declarative import declarative_base + + +# Prepare SQLAlchemy objects +Meta = MetaData() +Base = declarative_base(metadata=Meta) +Session = sessionmaker() +DbFilename = None + + +def connect(filename=None): + """ + create engine and bind to Meta object. + Arguments: + @filename - string with absolute or relative path to sqlite database + file. If None, db in-memory will be created + """ + global DbFilename + + if not filename: + filename = ':memory:' + + DbFilename = filename + + connect_string = "sqlite:///%s" % filename + engine = create_engine(connect_string) + Meta.bind = engine + Meta.create_all(checkfirst=True) + return engine