DEV Community

William Rodriguez
William Rodriguez

Posted on

Restricciones en lenguaje claro: Primary, Unique y Foreign keys con Field.

No deberías necesitar un doctorado en SQLAlchemy solo para definir una restricción UNIQUE compuesta o un ID autoincremental. wsqlite convierte la descripción del campo en SQL declarativo.

Así se implementa Declarative SQL Constraints in Pydantic Field en entornos reales con wsqlite:

from typing import Optional
from pydantic import BaseModel, Field
from wsqlite import WSQLite

class Employee(BaseModel):
    id: Optional[int] = Field(None, description="primary autoincrement")
    # Composite unique: department + position must be unique together
    department: str = Field(..., description="unique:job_role")
    position: str = Field(..., description="unique:job_role")
    # Foreign key referencing company.id
    company_id: int = Field(..., description="references:company.id")

db = WSQLite(Employee, "corp.db")
Enter fullscreen mode Exit fullscreen mode

Por qué wsqlite marca la diferencia:

  • Define tablas de base de datos usando modelos Pydantic v2 estándar.
  • Sincroniza columnas automáticamente al iniciar sin migraciones manuales.
  • Connection pool seguro multihilo con modo WAL por defecto (+5.000 inserts/seg).
  • Soporte completo síncrono y asíncrono con async/await.

¡Visita el repositorio en GitHub!

Autor: William Steve Rodríguez Villamizar (Wisrovi)

Top comments (0)