Files
Cleo/migration/rollback.sh
Pierre 77e7cf5d85 feat: Migration complète vers architecture v2.0.1
CHANGEMENTS MAJEURS:
- Fusion des 3 bases de données (uof_frontal, uof_linet, logs) en une seule base 'cleo'
- Migration vers PDO avec pattern Singleton et requêtes préparées
- Configuration externalisée via variables d'environnement (.env)
- Séparation application (dva-front) et base de données (maria3)

SÉCURITÉ:
- Suppression des credentials en dur dans le code
- Implémentation de la classe Database avec gestion d'erreurs sécurisée
- Protection contre les injections SQL via requêtes préparées

INFRASTRUCTURE:
- Container dva-front : MariaDB supprimé, application PHP uniquement
- Container maria3 : Base de données centralisée MariaDB 11.4
- Script de déploiement optimisé (deploy-cleo-fast.sh)

CORRECTIONS:
- Ajout des tables manquantes (z_sessions, z_stats, marches_listes)
- Compatibilité PDO (fetch_assoc → fetch(PDO::FETCH_ASSOC))
- Suppression des commentaires debug dans les réponses AJAX
- Permissions fichiers (.env 644, logs 777 avec owner nobody)

DOCUMENTATION:
- Mise à jour README.md avec architecture actuelle
- Migration README.md marqué comme complété
- TODO.md avec état d'avancement et prochaines étapes (PROD IN4)

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 15:45:52 +02:00

113 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# Script de rollback pour revenir à l'ancienne architecture
# Version: 2.0.1
# Date: 2025-09-11
set -e
# Couleurs pour l'affichage
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo -e "${YELLOW}================================================${NC}"
echo -e "${YELLOW} Rollback CLEO - Retour architecture legacy ${NC}"
echo -e "${YELLOW}================================================${NC}"
echo ""
# Vérifier qu'on est dans le bon répertoire
if [ ! -f "index.php" ] || [ ! -d "config" ]; then
echo -e "${RED}Erreur: Ce script doit être exécuté depuis la racine du projet CLEO${NC}"
exit 1
fi
# Fonction pour demander confirmation
confirm() {
read -p "$1 [y/N] " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
return 1
fi
return 0
}
echo -e "${YELLOW}ATTENTION: Cette opération va restaurer l'ancienne configuration${NC}"
if ! confirm "Voulez-vous continuer?"; then
echo "Rollback annulé"
exit 0
fi
echo ""
echo -e "${YELLOW}1. Restauration des fichiers originaux...${NC}"
# Restaurer conf.php
if [ -f "config/conf_old.php" ]; then
mv config/conf.php config/conf_new_backup.php 2>/dev/null || true
mv config/conf_old.php config/conf.php
echo -e "${GREEN} ✓ config/conf.php restauré${NC}"
else
# Chercher dans les backups
LATEST_BACKUP=$(ls -td backup_* 2>/dev/null | head -1)
if [ -n "$LATEST_BACKUP" ] && [ -f "$LATEST_BACKUP/conf.php.bak" ]; then
cp "$LATEST_BACKUP/conf.php.bak" config/conf.php
echo -e "${GREEN} ✓ config/conf.php restauré depuis $LATEST_BACKUP${NC}"
else
echo -e "${RED} ✗ Impossible de restaurer config/conf.php${NC}"
fi
fi
# Restaurer d6_tools.php
if [ -f "pub/res/d6/d6_tools_old.php" ]; then
mv pub/res/d6/d6_tools.php pub/res/d6/d6_tools_new_backup.php 2>/dev/null || true
mv pub/res/d6/d6_tools_old.php pub/res/d6/d6_tools.php
echo -e "${GREEN} ✓ d6_tools.php restauré${NC}"
else
# Chercher dans les backups
LATEST_BACKUP=$(ls -td backup_* 2>/dev/null | head -1)
if [ -n "$LATEST_BACKUP" ] && [ -f "$LATEST_BACKUP/d6_tools.php.bak" ]; then
cp "$LATEST_BACKUP/d6_tools.php.bak" pub/res/d6/d6_tools.php
echo -e "${GREEN} ✓ d6_tools.php restauré depuis $LATEST_BACKUP${NC}"
else
echo -e "${RED} ✗ Impossible de restaurer d6_tools.php${NC}"
fi
fi
echo ""
echo -e "${YELLOW}2. Configuration de la base de données...${NC}"
echo -e "${YELLOW} Note: Les bases uof_frontal et uof_linet doivent être disponibles${NC}"
echo -e "${YELLOW} La base 'cleo' reste en place pour référence future${NC}"
echo ""
echo -e "${YELLOW}3. Nettoyage...${NC}"
# Conserver les nouveaux fichiers pour référence
if [ ! -d "migration/new_architecture_backup" ]; then
mkdir -p migration/new_architecture_backup
fi
# Sauvegarder les nouveaux fichiers
[ -f "config/conf_new.php" ] && cp config/conf_new.php migration/new_architecture_backup/
[ -f "config/Database.php" ] && cp config/Database.php migration/new_architecture_backup/
[ -f "pub/res/d6/d6_tools_new.php" ] && cp pub/res/d6/d6_tools_new.php migration/new_architecture_backup/
[ -f ".env" ] && cp .env migration/new_architecture_backup/
[ -f ".env.example" ] && cp .env.example migration/new_architecture_backup/
echo -e "${GREEN} ✓ Nouveaux fichiers sauvegardés dans migration/new_architecture_backup/${NC}"
echo ""
echo -e "${GREEN}================================================${NC}"
echo -e "${GREEN} Rollback terminé! ${NC}"
echo -e "${GREEN}================================================${NC}"
echo ""
echo "L'application utilise maintenant l'ancienne architecture avec:"
echo " - Base uof_frontal pour la configuration"
echo " - Base uof_linet pour les données métier"
echo ""
echo "Les fichiers de la nouvelle architecture sont conservés dans:"
echo " - migration/new_architecture_backup/"
echo ""
echo "Pour réessayer la migration plus tard:"
echo " ./migration/deploy_new_architecture.sh"
echo ""