29 lines
839 B
Python
29 lines
839 B
Python
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])
|