Asma-yaseen's picture
Upload db.py with huggingface_hub
fa320e0 verified
Raw
History Blame Contribute Delete
957 Bytes
"""
Database connection and session management.
Task: 1.3
Spec: specs/database/schema.md
"""
from sqlmodel import create_engine, Session, SQLModel
import os
# Get database URL from environment
DATABASE_URL = os.getenv("DATABASE_URL")
if not DATABASE_URL:
raise ValueError("DATABASE_URL environment variable is not set")
# Create database engine with connection pooling
engine = create_engine(
DATABASE_URL,
echo=True, # Log SQL queries (set to False in production)
pool_pre_ping=True, # Verify connections before using
pool_size=10, # Max 10 connections
max_overflow=20 # Allow 20 overflow connections
)
def create_db_and_tables():
"""Create all database tables."""
SQLModel.metadata.create_all(engine)
def get_session():
"""
Dependency function to get database session.
Use with FastAPI Depends.
"""
with Session(engine) as session:
yield session