iro/controller/database.py
branchdevel
changeset 92 f479738b4879
child 93 ee10253258ad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/iro/controller/database.py	Thu Dec 22 03:13:34 2011 +0100
@@ -0,0 +1,29 @@
+from sqlalchemy import create_engine
+from sqlalchemy.orm import sessionmaker
+from model import Base
+
+engine = create_engine('sqlite:///:memory:', echo=True)
+
+def createDatabase():
+    Base.metadata.create_all(engine)
+
+Session = sessionmaker(bind=engine)
+
+class WithSession():
+    def __init__(self,autocommit=False):
+        self.autocommit=autocommit
+
+    def __enter__(self):
+        self.conn = engine.connect()
+        self.session = Session(bind=self.conn)
+        return self.session
+    
+    def __exit__(self,exc_type, exc_value, traceback):
+        if exc_type is None:
+            if self.autocommit:
+                self.session.commit()
+        else:
+            self.session.rollback()
+        self.session.close()
+        self.conn.close()
+