Respaldos¶
Estrategia de backups para el Sistema A3.
Backups de Base de Datos¶
Backups Automáticos (Heroku)¶
# Programar backups diarios
heroku pg:backups:schedule DATABASE_URL --at '02:00 America/Mexico_City' --app aterceros
# Ver backups
heroku pg:backups --app aterceros
# Descargar último backup
heroku pg:backups:download --app aterceros
Backups Manuales¶
# Antes de cambios importantes
heroku pg:backups:capture --app aterceros
# Descargar backup
heroku pg:backups:download b101 --app aterceros
Restaurar Backup¶
# Restaurar desde Heroku backup
heroku pg:backups:restore b101 DATABASE_URL --app aterceros
# Restaurar desde archivo local
heroku pg:push sistema_a3_local DATABASE_URL --app aterceros
Backups de Archivos (S3)¶
AWS S3 tiene versionado automático configurado. Para restaurar:
import boto3
s3 = boto3.client('s3')
s3.restore_object(
Bucket='sistema-a3-media',
Key='path/to/file.pdf',
VersionId='version_id'
)
Backups de Código¶
- Git: Todo el código está en GitHub
- Tags: Versiones importantes taggeadas
- Releases: Releases en GitHub con notas
Retención¶
- BD diarios: 7 días (Heroku)
- BD semanales: 4 semanas
- BD mensuales: 12 meses
- Archivos S3: Versionado permanente
Verificación¶
Probar restauración mensualmente:
# 1. Descargar backup
heroku pg:backups:download --app aterceros
# 2. Restaurar en BD local
pg_restore -d sistema_a3_test latest.dump
# 3. Verificar integridad
python manage.py check --database=default
En Caso de Desastre¶
- Contactar equipo de sistemas
- Identificar último backup bueno
- Restaurar BD
- Verificar integridad
- Restaurar archivos S3 (si aplica)
- Probar funcionalidad crítica
- Notificar a usuarios
⚠️ Crítico: Siempre tener al menos un backup antes de cambios mayores.