mysql.py 668 B

1234567891011121314151617181920212223242526272829
  1. from collections.abc import Generator
  2. from sqlalchemy import text
  3. from sqlalchemy.engine import Engine
  4. from sqlalchemy.orm import Session, sessionmaker
  5. from sqlalchemy import create_engine
  6. from app.core.config import settings
  7. engine: Engine = create_engine(
  8. settings.mysql_dsn,
  9. pool_pre_ping=True,
  10. pool_recycle=3600,
  11. )
  12. SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False)
  13. def get_db_session() -> Generator[Session, None, None]:
  14. db = SessionLocal()
  15. try:
  16. yield db
  17. finally:
  18. db.close()
  19. def mysql_ping() -> bool:
  20. with engine.connect() as conn:
  21. conn.execute(text("SELECT 1"))
  22. return True