Spaces:
Runtime error
Runtime error
| """ | |
| 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 | |