import os from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy import text from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() engine = create_engine("sqlite:///:memory:", echo=False) session = sessionmaker(bind=engine, autoflush=False, autocommit=False)() session.flush = lambda: None DATABASES = { "QuestMst.db": "Quest", "QuestSceneMst.db": "QuestScene", "QuestPartMst.db": "QuestPart", "ResourceEntry.db": "ResourceEntry", } def init(path): for d in DATABASES: if not os.path.isfile(os.path.join(path, d)): raise FileNotFoundError("Database {} not found".format(d)) for d in DATABASES: t = text("attach database :path as :schema") engine.execute(t, path=os.path.join(path, d), schema=DATABASES[d])