Evora separa código (Git) y datos (PostgreSQL). Entender esta diferencia evita confusiones al ver eventos en tu dominio que no existen en tu máquina local.
¿Dónde están los eventos?
Los eventos, usuarios, pagos e inscripciones están en tablas PostgreSQL (events, users, registrations, etc.). No están en el repositorio de GitHub.
| Pregunta | Respuesta |
|---|---|
| ¿Los eventos están en el código? | No, están en PostgreSQL |
| ¿GitHub los sube a internet? | No, solo sube código |
| ¿Por qué hay eventos en mi dominio? | Producción usa su propia DATABASE_URL |
| ¿Local y web comparten datos? | Solo si apuntan a la misma DATABASE_URL |
Entorno local (desarrollo)
- Postgres en Docker (
docker compose up -d): puerto 15432, baseeventia, usuarioevents_user. - Volumen
postgres_data: los datos persisten entre reinicios del contenedor. .envtípico:DATABASE_URL=postgresql://events_user:events_password@localhost:15432/eventia- La BD local empieza vacía tras
pnpm run db:push. No hay datos ficticios en el repositorio.
Entorno de producción
- Host (p. ej. Vercel) ejecuta el mismo código que el repo.
DATABASE_URLapunta a un Postgres gestionado (Neon, Supabase, etc.).- Variables distintas:
NEXT_PUBLIC_APP_URL, SMTP real,CRON_SECRET, etc. - Los datos de producción no se mezclan con Docker local salvo que configures la misma URL remota (no recomendado para desarrollo).
Buenas prácticas
- Nunca uses la
DATABASE_URLde producción en local para pruebas destructivas. - Usa
pnpm run db:backupo el panel super admin para export JSON antes de migraciones arriesgadas. - Confía en los backups automáticos del proveedor (Neon PITR, Supabase backups) como respaldo principal.
- El cron semanal
/api/cron/backupverifica conectividad y conteos de tablas en producción.
Diagrama
flowchart LR
subgraph local [Local]
Dev[pnpm dev]
Docker[(Postgres :15432)]
Dev --> Docker
end
subgraph prod [Producción]
Vercel[Vercel]
Neon[(Neon / Supabase)]
Vercel --> Neon
end
Git[GitHub - solo código] --> Dev
Git --> Vercel