Compare commits
5
Commits
e933218443
...
prod/v1.8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0be2b5cc52 | ||
|
|
5b4ad0f070 | ||
|
|
b1d897a3c8 | ||
|
|
f6c853068f | ||
|
|
19e969eb09 |
+27
-8
@@ -88,18 +88,23 @@ if [ "$STATUS" = "SUCCESS" ]; then
|
||||
# Vérification si le conteneur Docker est actif
|
||||
if command -v docker >/dev/null 2>&1 && docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
|
||||
log "Mode détection: Conteneur Docker '${CONTAINER_NAME}' trouvé. Utilisation de pg_dump via docker exec."
|
||||
docker exec -e PGPASSWORD="${DB_PASSWORD}" "${CONTAINER_NAME}" pg_dump -U "${DB_USER}" -d "${DB_NAME}" | gzip > "$DUMP_PATH" 2>> "$LOG_FILE"
|
||||
docker exec -e PGPASSWORD="${DB_PASSWORD}" "${CONTAINER_NAME}" pg_dump --no-owner --no-privileges -U "${DB_USER}" -d "${DB_NAME}" | gzip > "$DUMP_PATH" 2>> "$LOG_FILE"
|
||||
DUMP_EXIT_CODE=${PIPESTATUS[0]}
|
||||
else
|
||||
log "Mode détection: Exécution directe de pg_dump (hôte local)."
|
||||
PGPASSWORD="${DB_PASSWORD}" pg_dump -h "${DB_HOST}" -p "${DB_PORT}" -U "${DB_USER}" -d "${DB_NAME}" | gzip > "$DUMP_PATH" 2>> "$LOG_FILE"
|
||||
PGPASSWORD="${DB_PASSWORD}" pg_dump --no-owner --no-privileges -h "${DB_HOST}" -p "${DB_PORT}" -U "${DB_USER}" -d "${DB_NAME}" | gzip > "$DUMP_PATH" 2>> "$LOG_FILE"
|
||||
DUMP_EXIT_CODE=${PIPESTATUS[0]}
|
||||
fi
|
||||
|
||||
if [ ${DUMP_EXIT_CODE} -eq 0 ] && [ -s "$DUMP_PATH" ]; then
|
||||
if [ ${DUMP_EXIT_CODE} -eq 0 ] || [ ${DUMP_EXIT_CODE} -eq 141 ]; then
|
||||
if [ -s "$DUMP_PATH" ]; then
|
||||
DUMP_SIZE=$(du -h "$DUMP_PATH" | cut -f1)
|
||||
log "✅ Dump généré avec succès ! Taille du fichier : ${DUMP_SIZE}"
|
||||
else
|
||||
DUMP_EXIT_CODE=0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ${DUMP_EXIT_CODE} -ne 0 ]; then
|
||||
log "❌ ERREUR lors de l'extraction de la base de données (code de sortie: ${DUMP_EXIT_CODE})."
|
||||
STATUS="FAILURE"
|
||||
rm -f "$DUMP_PATH"
|
||||
@@ -110,13 +115,21 @@ fi
|
||||
if [ "$STATUS" = "SUCCESS" ] && [ "$ENABLE_UAT_RESTORE" = "true" ]; then
|
||||
log "Démarrage de la restauration et l'anonymisation sur UAT (${UAT_DB_USER}@${UAT_DB_HOST}:${UAT_DB_PORT}/${UAT_DB_NAME})..."
|
||||
|
||||
CLEAN_SCHEMA_SQL="
|
||||
DO \$\$ DECLARE r RECORD; BEGIN FOR r IN (SELECT oid FROM pg_largeobject_metadata) LOOP PERFORM lo_unlink(r.oid); END LOOP; EXCEPTION WHEN OTHERS THEN NULL; END \$\$;
|
||||
DROP SCHEMA IF EXISTS public CASCADE;
|
||||
CREATE SCHEMA public;
|
||||
GRANT ALL ON SCHEMA public TO ${UAT_DB_USER};
|
||||
GRANT ALL ON SCHEMA public TO public;
|
||||
"
|
||||
|
||||
ANONYMIZE_SQL="
|
||||
UPDATE adherent SET
|
||||
nom = 'Nom_Adherent_' || id,
|
||||
prenom = 'Prenom_Adherent_' || id,
|
||||
email = 'adherent' || id || '@test.local',
|
||||
telephone = '06' || LPAD((id)::text, 8, '0'),
|
||||
lieu_naissance = 'Ville_' || id,
|
||||
lieu_naissance_ville = 'Ville_' || id,
|
||||
representant_legal = CASE
|
||||
WHEN representant_legal IS NOT NULL AND TRIM(representant_legal) <> ''
|
||||
THEN 'Representant_' || id
|
||||
@@ -128,7 +141,7 @@ UPDATE pre_inscription SET
|
||||
prenom = 'Prenom_PreInscr_' || id,
|
||||
email = 'preinscr' || id || '@test.local',
|
||||
telephone = '06' || LPAD((id)::text, 8, '0'),
|
||||
lieu_naissance = 'Ville_' || id,
|
||||
lieu_naissance_ville = 'Ville_' || id,
|
||||
representant_legal = CASE
|
||||
WHEN representant_legal IS NOT NULL AND TRIM(representant_legal) <> ''
|
||||
THEN 'Representant_PreInscr_' || id
|
||||
@@ -145,7 +158,10 @@ UPDATE educateur SET
|
||||
RESTORE_SUCCESS=false
|
||||
|
||||
if command -v psql >/dev/null 2>&1; then
|
||||
log "Restauration UAT via psql local..."
|
||||
log "Réinitialisation du schéma public sur UAT..."
|
||||
PGPASSWORD="${UAT_DB_PASSWORD}" psql -h "${UAT_DB_HOST}" -p "${UAT_DB_PORT}" -U "${UAT_DB_USER}" -d "${UAT_DB_NAME}" -c "$CLEAN_SCHEMA_SQL" >> "$LOG_FILE" 2>&1
|
||||
|
||||
log "Restauration du dump Prod vers UAT..."
|
||||
if gunzip -c "$DUMP_PATH" | PGPASSWORD="${UAT_DB_PASSWORD}" psql -h "${UAT_DB_HOST}" -p "${UAT_DB_PORT}" -U "${UAT_DB_USER}" -d "${UAT_DB_NAME}" >> "$LOG_FILE" 2>&1; then
|
||||
log "Exécution des requêtes d'anonymisation sur UAT..."
|
||||
if PGPASSWORD="${UAT_DB_PASSWORD}" psql -h "${UAT_DB_HOST}" -p "${UAT_DB_PORT}" -U "${UAT_DB_USER}" -d "${UAT_DB_NAME}" -c "$ANONYMIZE_SQL" >> "$LOG_FILE" 2>&1; then
|
||||
@@ -153,7 +169,10 @@ UPDATE educateur SET
|
||||
fi
|
||||
fi
|
||||
elif command -v docker >/dev/null 2>&1; then
|
||||
log "Restauration UAT via conteneur Docker postgres..."
|
||||
log "Réinitialisation du schéma public sur UAT via Docker..."
|
||||
docker run --rm --net=host -e PGPASSWORD="${UAT_DB_PASSWORD}" postgres:15-alpine psql -h "${UAT_DB_HOST}" -p "${UAT_DB_PORT}" -U "${UAT_DB_USER}" -d "${UAT_DB_NAME}" -c "$CLEAN_SCHEMA_SQL" >> "$LOG_FILE" 2>&1
|
||||
|
||||
log "Restauration du dump Prod vers UAT via Docker..."
|
||||
if gunzip -c "$DUMP_PATH" | docker run --rm -i --net=host -e PGPASSWORD="${UAT_DB_PASSWORD}" postgres:15-alpine psql -h "${UAT_DB_HOST}" -p "${UAT_DB_PORT}" -U "${UAT_DB_USER}" -d "${UAT_DB_NAME}" >> "$LOG_FILE" 2>&1; then
|
||||
log "Exécution des requêtes d'anonymisation sur UAT via Docker..."
|
||||
if docker run --rm --net=host -e PGPASSWORD="${UAT_DB_PASSWORD}" postgres:15-alpine psql -h "${UAT_DB_HOST}" -p "${UAT_DB_PORT}" -U "${UAT_DB_USER}" -d "${UAT_DB_NAME}" -c "$ANONYMIZE_SQL" >> "$LOG_FILE" 2>&1; then
|
||||
|
||||
Reference in New Issue
Block a user