DesarrolladoresGuías
Migración de base de datos
Cómo editar el schema de Prisma y aplicar una migración de forma segura.
Reglas del schema
- Todo modelo nuevo necesita
tenantId String+ relación conTenant(ver Multi-tenancy). - IDs con
@default(uuid()). createdAtcon@default(now()),updatedAtcon@updatedAt.- Índices en campos de búsqueda frecuente:
@@index([tenantId]),@@index([tenantId, status]). - Nunca elimines campos existentes sin confirmar el impacto — hay datos reales de producción dependiendo del schema actual.
Aplicar la migración
cd apps/valwisp-api
npm run db:migrate
# Nombre descriptivo en snake_case, ej: add_hotspot_profilesAntes de desplegar — el riesgo real
Las migraciones no corren automáticamente en producción — el contenedor aplica el
schema con prisma db push al arrancar (ver
Base de datos). Esto tiene
dos consecuencias directas:
- Una columna
NOT NULLsin valor por defecto tumba la API entera al desplegar, si hay filas existentes. - Cualquier lógica de backfill que escribas dentro del archivo
migration.sqlgenerado nunca se ejecuta en producción — es código muerto. Si necesitas migrar datos existentes, hazlo con un script separado (o un default seguro en el schema), no confiando en el SQL de la migración.
Después de migrar
- Actualiza los tipos TypeScript en
apps/valwisp-dashboard/src/api/valwisp/types.ts. - Revisa si hay endpoints o servicios que dependan del campo/modelo cambiado.
- Si hay datos de seed afectados, actualiza
prisma/seed.ts.