def loadDBSession(argv): config_uri = argv[1] setup_logging(config_uri) settings = get_appsettings(config_uri) sqlalchemy_url = os.environ.get('DATABASE_URL') settings['sqlalchemy.url'] = sqlalchemy_url engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) Base.metadata.create_all(engine)
CardOracleRules, CardPrintedName, CardPrintedRules, CardPrintedType, CardRarity, CardSet, CardType, CardWatermark ) from mtgquery.lib.alchemy_extensions import get_or_create from mtgquery.scripts import gen_help_links import sqlsoup sqlalchemy_url = os.environ.get('DATABASE_URL') engine = engine_from_config({'sqlalchemy.url': sqlalchemy_url}, 'sqlalchemy.') DBSession.configure(bind=engine) Base.metadata.bind = engine dstSession = DBSession() load_model = lambda model, **kwargs: get_or_create(dstSession, model, **kwargs) def load_cards_from(db_path): sql_db_name = 'sqlite:///{}'.format(db_path.replace('\\', '/')) srcDB = sqlsoup.SQLSoup(sql_db_name) srcDB.execute("select 1").scalar() srcCards = srcDB.MTGCardInfo.all() total = len(srcCards) next_warn = 0 for i, card in enumerate(srcCards): if int(100. * i / total) >= next_warn: