Browse Source

database connection

Kirk Trombley 6 years ago
parent
commit
1339a2314d
1 changed files with 28 additions and 0 deletions
  1. 28 0
      src/db.py

+ 28 - 0
src/db.py

@@ -0,0 +1,28 @@
+from contextlib import contextmanager
+
+from sqlalchemy import create_engine
+from sqlalchemy.orm import sessionmaker
+
+from config import POSTGRES
+from command_system import ModelBase
+
+engine = create_engine("postgresql://" + POSTGRES)
+Session = sessionmaker(bind=engine)
+
+
+def init_db():
+    ModelBase.metadata.create_all(engine)
+
+
+@contextmanager
+def session_scope():
+    """Provide a transactional scope around a series of operations."""
+    session = Session()
+    try:
+        yield session
+        session.commit()
+    except:
+        session.rollback()
+        raise
+    finally:
+        session.close()