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>
This commit is contained in:
113
migration/rollback.sh
Executable file
113
migration/rollback.sh
Executable file
@@ -0,0 +1,113 @@
|
||||
#!/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 ""
|
||||
Reference in New Issue
Block a user