iro/controller/database.py
author Sandro Knauß <knauss@netzguerilla.net>
Thu, 22 Dec 2011 03:13:34 +0100
branchdevel
changeset 92 f479738b4879
child 93 ee10253258ad
permissions -rw-r--r--
umbau zu MVC

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()