Spaces:
Sleeping
Sleeping
File size: 717 Bytes
cccf200 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | """
Database session management for PostgreSQL connection.
"""
from typing import Generator
from sqlmodel import create_engine, Session
from src.core.config import settings
# Create database engine
engine = create_engine(
settings.DATABASE_URL,
echo=settings.DEBUG,
pool_pre_ping=True,
pool_size=10,
max_overflow=20,
pool_recycle=3600, # Recycle connections after 1 hour
connect_args={
"connect_timeout": 10,
"options": "-c timezone=utc"
}
)
def get_session() -> Generator[Session, None, None]:
"""
Dependency to get database session.
Yields:
Session: SQLModel database session
"""
with Session(engine) as session:
yield session
|