---
name: "sqlmodel-sqlalchemy-pydantic-unify"
description: "Define database tables and API schemas once with unified SQLModel classes."
metadata:
  author: "Tiangolo"
  version: "1.0.0"
  runtime_compatibility:
    - "codex"
    - "claude-code"
    - "cursor"
    - "windsurf"
triggers:
  - "define sqlmodel table"
  - "sqlmodel relationship"
  - "query database sqlmodel select"
permissions:
  fs_read: true
  fs_write: "workspace"
  shell_exec: false
  net_access: false
---

# SQLModel Unified SQLAlchemy ORM & Pydantic Data Models

Develops database layers with SQLModel (Tiangolo): declaring SQLModel(table=True), primary keys, relationships (Relationship), executing type-safe queries with select(), and seamless FastAPI integration.

## When to Invoke
Invoke this skill whenever you need to:
- define sqlmodel table
- sqlmodel relationship
- query database sqlmodel select

## Execution SOP & Rules
1. Define model: class Hero(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True).
2. Add relationship: team: Optional[Team] = Relationship(back_populates='heroes').
3. Execute query: with Session(engine) as session: heroes = session.exec(select(Hero)).all().
4. Enjoy zero duplication between database table schemas and API request/response validation models.

## Verification Checklist
- Run local linting, syntax validation, and type-checks before reporting completion.
- Ensure all created or modified files adhere to workspace boundaries and avoid uncommitted secrets.
- Verify tests or build commands exit cleanly with return code 0.
