import logging from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine from app.config import settings engine = create_async_engine( settings.DATABASE_URL, #echo=settings.DEBUG, echo=False pool_pre_ping=True, ) #if not settings.SQLALCHEMY_LOG: # for _log_name in ("sqlalchemy.engine", "sqlalchemy.pool", "sqlalchemy.dialects", "sqlalchemy.orm"): # logging.getLogger(_log_name).setLevel(logging.WARNING) if not settings.SQLALCHEMY_LOG: for name in ( "sqlalchemy.engine", "sqlalchemy.pool", "sqlalchemy.dialects", "sqlalchemy.orm", ): logger = logging.getLogger(name) logger.setLevel(logging.ERROR) logger.propagate = False AsyncSessionLocal = async_sessionmaker( bind=engine, class_=AsyncSession, expire_on_commit=False, autoflush=False, )