import os import glob import time from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base from flask_sqlalchemy import SQLAlchemy from app.settings import app_cfg if app_cfg.USE_SQLITE: os.makedirs(app_cfg.DIR_DATABASE, exist_ok=True) connection_url = "sqlite:///{}".format(os.path.join(app_cfg.DIR_DATABASE, 'animism.sqlite3')) else: connection_url = "mysql+pymysql://{}:{}@{}/{}?charset=utf8mb4".format( os.getenv("DB_USER"), os.getenv("DB_PASS"), os.getenv("DB_HOST"), os.getenv("DB_NAME") ) engine = create_engine(connection_url, encoding="utf-8", pool_recycle=3600) #, echo="debug") Session = sessionmaker(bind=engine) Base = declarative_base() Base.metadata.bind = engine db = SQLAlchemy() # include the models in reverse dependency order, so relationships work from app.sql.models.annotation import Annotation from app.sql.models.paragraph import Paragraph from app.sql.models.upload import Upload from app.sql.models.media import Media from app.sql.models.episode import Episode from app.sql.models.venue import Venue from app.sql.models.user import User