Restaurations Planifiées¶
Cette page décrit comment automatiser la restauration de bases de données PostgreSQL via des CRONs Muppy, typiquement pour rafraîchir quotidiennement un environnement de développement ou de staging.
Task de Restauration¶
La Task mpy_pg_restore du script muppy_postgresql_base.scripts.pg_dump permet de restaurer un pg_dump sur un Cluster PostgreSQL.
Paramètres clés pour l'automatisation¶
| Paramètre | Description |
|---|---|
source_database_obj |
Si fourni (au lieu de pg_dump_obj), Muppy restaure automatiquement le dernier dump de cette database |
force_restore |
Si True, écrase la database existante (avec protections) |
qualifier_obj |
Assigne automatiquement ce qualifier à la database restaurée |
pg_cluster_obj |
Optionnel si un seul cluster existe sur l'hôte |
Cas d'usage: Refresh quotidien d'un environnement de dev¶
Objectif: Chaque jour, restaurer le dernier backup de production sur l'environnement de développement.
Configuration du Task Run¶
- Créer un Task Run avec la Task mpy_pg_restore
- Configurer les paramètres:
source_database_obj: La database de production (son dernier dump sera utilisé)db_name: Le nom de la database de destination (ex: "myapp_dev")force_restore: True (pour écraser la database existante chaque jour)qualifier_obj: Le qualifier "dev" ou "staging"
Protections contre les erreurs¶
Le système inclut plusieurs protections:
- Protection des databases de production: Impossible d'écraser une database ayant un qualifier "prod"
- Qualifier requis pour force_restore: Une database sans qualifier ne peut pas être écrasée (sauf si qualifier_obj est fourni)
- Interdiction de créer des bases "prod": Le paramètre qualifier_obj ne peut pas être un qualifier de catégorie "prod"
Flux d'exécution¶
mpy_pg_restore(source_database_obj=prod_db, force_restore=True, qualifier_obj=dev_qualifier)
├── Récupère le dernier dump de prod_db
├── Vérifie que la DB destination n'est pas "prod"
├── Télécharge le dump depuis S3
├── Coupe les connexions à la DB existante
├── Drop et recrée la database
├── Restaure les données
└── Assigne le qualifier "dev" à la database
Planification via CRON¶
Suivre la même procédure que pour les Backups Planifiés:
- Tester le Task Run avec "Launch as Job"
- Cliquer sur "Create CRON"
- Configurer la récurrence (ex: tous les jours à 3h du matin)
Restauration simple (sans force_restore)¶
Pour une restauration ponctuelle sans écraser de database existante, utilisez plutôt le Wizard de Restauration ou omettez le paramètre force_restore.