#!/bin/bash set -euo pipefail umask 007 BACKUP_DIR="{{ groupe_meditation_backup_dir }}" RETENTION_DAYS="{{ groupe_meditation_backup_retention_days }}" DB_NAME="{{ groupe_meditation_db_name }}" DB_USER="{{ groupe_meditation_db_user }}" DB_HOST="{{ groupe_meditation_db_host }}" DATE="$(date +%Y-%m-%d_%H%M)" mkdir -p "$BACKUP_DIR" export PGPASSWORD="{{ groupe_meditation_db_password }}" cd "{{ groupe_meditation_backend_dir }}" "{{ groupe_meditation_backend_dir }}/venv/bin/python" "{{ groupe_meditation_deploy_dir }}/tenant_schemas.py" "{{ groupe_meditation_backend_dir }}/venv/bin/python" "{{ groupe_meditation_deploy_dir }}/group_backup.py" all pg_dump -U "$DB_USER" -h "$DB_HOST" -Fc "$DB_NAME" > "$BACKUP_DIR/app_${DATE}.dump" for schema in $(PGPASSWORD="$PGPASSWORD" psql -U "$DB_USER" -h "$DB_HOST" -d "$DB_NAME" -Atc "SELECT tenant_schema FROM groupes WHERE tenant_schema IS NOT NULL ORDER BY tenant_schema"); do pg_dump -U "$DB_USER" -h "$DB_HOST" -n "$schema" -Fc "$DB_NAME" > "$BACKUP_DIR/${schema}_${DATE}.dump" done find "$BACKUP_DIR" -name "grpmed_*.dump" -mtime +"$RETENTION_DAYS" -delete find "$BACKUP_DIR" -name "app_*.dump" -mtime +"$RETENTION_DAYS" -delete find "$BACKUP_DIR" -name "group_*.json" -mtime +"$RETENTION_DAYS" -delete find "$BACKUP_DIR" -name "grp_*.dump" -mtime +"$RETENTION_DAYS" -delete echo "[$(date)] Sauvegarde terminee: app_${DATE}.dump"