Add development mode with automatic test data seeding

This commit is contained in:
Mondo Diaz
2025-12-11 14:36:22 -06:00
parent cb3d62b02a
commit c08d1082eb
3 changed files with 250 additions and 1 deletions

View File

@@ -2,19 +2,35 @@ from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse
from contextlib import asynccontextmanager
import logging
import os
from .config import get_settings
from .database import init_db
from .database import init_db, SessionLocal
from .routes import router
from .seed import seed_database
settings = get_settings()
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup: initialize database
init_db()
# Seed test data in development mode
if settings.is_development:
logger.info(f"Running in {settings.env} mode - checking for seed data")
db = SessionLocal()
try:
seed_database(db)
finally:
db.close()
else:
logger.info(f"Running in {settings.env} mode - skipping seed data")
yield
# Shutdown: cleanup if needed