1234567891011121314151617181920212223242526272829 |
- from contextlib import contextmanager
- from sqlalchemy import create_engine
- from sqlalchemy.orm import sessionmaker
- from config import DB_FILE
- from command_system import ModelBase
- engine = create_engine("sqlite:///" + DB_FILE)
- 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()
|