¿Por qué deberías mantener esquemas Pydantic para tu API y modelos SQLAlchemy separados para tu base de datos? WSQLite elimina esa duplicidad con cero código repetitivo.
Este es el Día 01 de la serie técnica WSQLite Open Source (MIT, Pydantic v2, WAL multihilo, tipado estricto).
El Problema de la Duplicidad de Modelos
Mantener esquemas paralelos de validación y almacenamiento genera desalineación de tipos, errores en tiempo de ejecución y tediosas migraciones manuales. WSQLite unifica ambos mundos con mapeo nativo 1:1 desde Pydantic v2.
Implementación Práctica con WSQLite
from typing import Optional
from pydantic import BaseModel, Field
from wsqlite import WSQLite
class User(BaseModel):
id: Optional[int] = Field(None, description="primary autoincrement")
name: str
email: str = Field(..., description="unique")
# Auto-crea la tabla 'user' con esquema SQLite optimizado
db = WSQLite(User, "app.db")
# Inserción y consulta completamente tipadas
db.insert(User(name="Alice", email="alice@example.com"))
user = db.get_by_field(email="alice@example.com")[0]
print(f"Encontrado: {user.name} ({user.email})")
Por qué WSQLite marca la diferencia
- Modelos Pydantic v2 Estándar: Define tus tablas directamente con clases Pydantic v2.
- Sincronización Automática: Detecta nuevas columnas y migra el esquema al iniciar sin escribir ficheros SQL manuales.
- Alta Concurrencia: Pool de conexiones seguro para entornos multihilo con modo WAL (Write-Ahead Logging) por defecto (+5.000 inserciones/segundo).
-
Soporte Dual: Funciona tanto en código síncrono como asíncrono con
async/await.
Verificación y Recursos
- GitHub (+50 tests verificados): https://github.com/wisrovi/wsqlite
- PyPI: https://pypi.org/project/wsqlite
Autor: William Steve Rodríguez Villamizar (Wisrovi)
Top comments (0)