# Paper Dynasty Backend FastAPI-based real-time baseball game engine with WebSocket support. ## Quick Start ```bash # Install UV curl -LsSf https://astral.sh/uv/install.sh | sh # Install dependencies uv sync # Apply database migrations uv run alembic upgrade head # Run server uv run python -m app.main ``` ## Database Migrations This project uses [Alembic](https://alembic.sqlalchemy.org/) for database schema migrations. ### Initial Setup (New Database) ```bash # Apply all migrations to create schema uv run alembic upgrade head ``` ### Creating New Migrations ```bash # Auto-generate from model changes uv run alembic revision --autogenerate -m "Description of changes" # IMPORTANT: Always review the generated migration before applying! # Then apply: uv run alembic upgrade head ``` ### Viewing Migration Status ```bash # Show migration history uv run alembic history # Show current revision uv run alembic current ``` ### Rolling Back ```bash # Rollback one migration uv run alembic downgrade -1 # Rollback to specific revision uv run alembic downgrade 001 # Rollback all (dangerous!) uv run alembic downgrade base ``` ### Migration Best Practices 1. **Always review auto-generated migrations** before applying - autogenerate is helpful but not perfect 2. **Test migrations on dev/staging** before production 3. **Keep migrations small and focused** - easier to rollback 4. **Never edit migrations that have been applied** to shared databases 5. **Include both upgrade and downgrade** for reversibility ### Existing Migrations | Revision | Description | |----------|-------------| | 001 | Initial schema (games, plays, lineups, rolls, etc.) | | 004 | Materialized views for statistics | ## Documentation See `CLAUDE.md` for full documentation.