#!/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 ""