Evora usa Drizzle como vía única para el esquema. Los scripts históricos migrate-*.ts ya no forman parte del repo.


Métodos actuales

MétodoComando / ubicaciónUso recomendado
Drizzle pushpnpm run db:pushDesarrollo local, prototipos
Drizzle generate/migratedb:generate, db:migrateProducción con carpetas drizzle/ versionadas
SQL versionadodrizzle/*.sqlCambios revisados en PR
Scripts de opsscripts/ (seed, backup, jobs, staging)Arranque y operación, no DDL

Flujo recomendado para cambios nuevos

  1. Edita esquema en src/lib/db/schema/*.ts.
  2. En local: pnpm run db:push y prueba la app.
  3. Para producción: pnpm run db:generate → revisa SQL → pnpm run db:migrate en deploy.
  4. Si necesitas un backfill puntual, añade un script idempotente en scripts/ y un comando npm temporal; elimínalo cuando ya no sirva.

Restaurar desde cero

pnpm run db:fresh

Eso hace: db:resetdb:pushdb:seed:bootstrap (roles + Free + Plan Plataforma).

Planes SaaS comerciales adicionales: el superadmin los crea en el panel. Para dejar solo canónicos: pnpm db:sync:plans.


Producción

  1. Backup (pnpm run db:backup o snapshot del proveedor).
  2. Aplicar migración en ventana de bajo tráfico.
  3. Verificar con smoke test (pnpm run staging:gate en staging).
  4. No uses db:push destructivo contra producción sin revisar el diff de Drizzle.