Spaces:
Runtime error
Runtime error
File size: 957 Bytes
fa320e0 | 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 32 33 34 35 36 37 38 | """
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
|