Respaldos y restauración
Política de respaldos (frecuencia, retención, ubicación, cifrado) pendiente de definir.
Los respaldos reemplazan a los botones de copia de seguridad del escritorio y son responsabilidad de la plataforma.
Qué hay que respaldar
Todos los datos viven en el servicio PostgreSQL de Dokploy (base ganadero). Este manual y la aplicación web son estáticos y se reconstruyen desde Git.
Esquema previsto
- Volcado periódico con
pg_dump(o instantáneas del proveedor) del esquema completo. - Retención diaria y mensual; copia fuera del servidor.
- Respaldo adicional antes de cada migración en producción.
Restauración (ejemplo)
Volcados y restauraciones se hacen con el usuario administrador del PostgreSQL de Dokploy, el mismo de la DATABASE_URL (como sus Backups): un rol sin privilegios, como ganadero_app, no puede volcar tablas con FORCE ROW LEVEL SECURITY (pg_dump desactiva row_security y falla si una política filtraría filas).
pg_dump -Fc -d "postgres://<usuario-admin>:<clave>@<host>:5432/<base>" -f respaldo.dump
pg_restore --clean --if-exists -d "postgres://<usuario-admin>:<clave>@<host>:5432/<base>" respaldo.dump
El volcado incluye los permisos otorgados a ganadero_app, pero los roles pertenecen al servidor y no a la base. Para restaurar en un PostgreSQL nuevo, despliegue primero la API contra él (el servicio migrate crea ganadero_app y el esquema) y luego restaure con --clean --if-exists. Tras restaurar, redespliegue (o vuelva a ejecutar migrate) para confirmar que el rol y su membresía están en su sitio; la API verifica al arrancar que puede ejecutar sus consultas como ganadero_app.
Si usa la opción avanzada de dos roles, agregue --no-owner --role=ganadero a pg_restore para que los objetos restaurados pertenezcan al dueño ganadero.
Pruebe la restauración periódicamente en un entorno aparte. Al restaurar, un respaldo es de toda la base: recuperar una sola organización requiere un procedimiento específico (TBD).