Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Backups de PostgreSQL que se prueban solos: pg_dump, cifrado y verificación automática con GitHub Actions

说明与用途

使用 GitHub Actions 的自动化管道为 PostgreSQL 创建、加密并验证备份,确保可恢复性。

问题

Garantizar que un backup de PostgreSQL sea restaurable antes de un desastre.

结果

Backup diario de 4 KB cifrado, verificado con 5 filas restauradas, artefacto retenido 7 días; restauración de producción en 24 s tras DROP TABLE.

工作流

  • 1. deploy.yml: despliega API y ejecuta pruebas de humo, construye imagen Docker y dispara Deploy Hook si pasa.
  • 2. backup.yml: ejecuta diariamente a las 02:00 UTC, genera dump con pg_dump, comprime, verifica, cifra con GPG, calcula checksum y sube como artefacto.
  • 3. restore.yml: restaura backup en base temporal, cuenta filas, falla si hay corrupción o error de restauración.
  • 4. backup.sh: script bash que ejecuta pg_dump con opciones de limpieza y sin privilegios, comprueba gzip, busca marca de dump completo, cifra si se dispone de BACKUP_ENCRYPTION_KEY, genera SHA-256 y limpia archivos parciales en error.

证据

En este proyecto partimos de una pregunta sencilla: ¿cómo sabemos que un backup sirve antes de necesitarlo?

来源

El script es el corazón del proyecto. Lo escribí en bash con set -Eeuo pipefail para que cualquier error detenga la ejecución.

来源

Después de generar el backup, el workflow lo restaura en esa base efímera con el mismo restore.sh que usaríamos en un desastre real, y cuenta las filas de la tabla tasks.

来源

En la ejecución de la demostración el backup tardó 44 segundos, pesó 4 KB cifrado y la verificación recuperó 5 filas.

来源

  • 记录日期: 2026-10-04T04:40:46.512Z