ValwispDocs
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 con Tenant (ver Multi-tenancy).
  • IDs con @default(uuid()).
  • createdAt con @default(now()), updatedAt con @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_profiles

Antes 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:

  1. Una columna NOT NULL sin valor por defecto tumba la API entera al desplegar, si hay filas existentes.
  2. Cualquier lógica de backfill que escribas dentro del archivo migration.sql generado 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

  1. Actualiza los tipos TypeScript en apps/valwisp-dashboard/src/api/valwisp/types.ts.
  2. Revisa si hay endpoints o servicios que dependan del campo/modelo cambiado.
  3. Si hay datos de seed afectados, actualiza prisma/seed.ts.

On this page