def setup_db(config=None, uri=None, echo=False): """Setup database """ from sqlalchemy import create_engine from nowin_core.database.tables import initdb if config is None: config = get_config() if uri is None: uri = config['database']['uri'] engine = create_engine(uri, convert_unicode=True, echo=echo) initdb(engine) return engine
def create_session(echo=False, zope_transaction=True): """Create engine and session, return session then """ from sqlalchemy import create_engine from nowin_core.database.tables import initdb from zope.sqlalchemy import ZopeTransactionExtension engine = create_engine('sqlite:///', convert_unicode=True, echo=echo) initdb(engine) from nowin_core.database.tables import DeclarativeBase, DBSession DeclarativeBase.metadata.create_all(bind=engine) DBSession.configure(bind=engine, extension=ZopeTransactionExtension()) if zope_transaction: DBSession.configure(extension=ZopeTransactionExtension()) return DBSession
def initTables(self): from nowin_core.database import tables tables.initdb(self.engine) self.logger.info('Bound tables')