############################################################################## # Copyright (c) 2016 Huawei Technologies Co.,Ltd and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## import logging from sqlalchemy import create_engine from sqlalchemy.orm import scoped_session, sessionmaker from sqlalchemy.ext.declarative import declarative_base logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) engine = create_engine('sqlite:////tmp/yardstick.db', convert_unicode=True) db_session = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=engine)) Base = declarative_base() Base.query = db_session.query_property() def init_db(): subclasses = [subclass.__name__ for subclass in Base.__subclasses__()] logger.debug('Import models: %s', subclasses) Base.metadata.create_all(bind=engine)