| 1234567891011121314151617181920212223242526272829 |
- from collections.abc import Generator
- from sqlalchemy import text
- from sqlalchemy.engine import Engine
- from sqlalchemy.orm import Session, sessionmaker
- from sqlalchemy import create_engine
- from app.core.config import settings
- engine: Engine = create_engine(
- settings.mysql_dsn,
- pool_pre_ping=True,
- pool_recycle=3600,
- )
- SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False)
- def get_db_session() -> Generator[Session, None, None]:
- db = SessionLocal()
- try:
- yield db
- finally:
- db.close()
- def mysql_ping() -> bool:
- with engine.connect() as conn:
- conn.execute(text("SELECT 1"))
- return True
|