Exemplo n.º 1
0
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)
Exemplo n.º 2
0
    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: