#!/bin/bash # Script de vérification avant migration vers MariaDB echo "════════════════════════════════════════════════════════════" echo "🔍 Vérification pré-migration MariaDB" echo "════════════════════════════════════════════════════════════" echo "" # Couleurs RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Fonction de vérification check_step() { if [ $? -eq 0 ]; then echo -e "${GREEN}✅ $1${NC}" return 0 else echo -e "${RED}❌ $1${NC}" return 1 fi } # 1. Vérifier Python echo "1️⃣ Vérification de Python..." python3 --version check_step "Python installé" echo "" # 2. Vérifier les dépendances Python echo "2️⃣ Vérification des dépendances Python..." if python3 -c "import MySQLdb" 2>/dev/null; then echo -e "${GREEN}✅ mysqlclient installé${NC}" else echo -e "${RED}❌ mysqlclient NON installé${NC}" echo -e "${YELLOW} 💡 Installez-le avec: pip3 install mysqlclient${NC}" MISSING_DEPS=1 fi if python3 -c "import django" 2>/dev/null; then echo -e "${GREEN}✅ Django installé${NC}" else echo -e "${RED}❌ Django NON installé${NC}" MISSING_DEPS=1 fi if python3 -c "import dotenv" 2>/dev/null; then echo -e "${GREEN}✅ python-dotenv installé${NC}" else echo -e "${RED}❌ python-dotenv NON installé${NC}" MISSING_DEPS=1 fi echo "" # 3. Vérifier le fichier .env echo "3️⃣ Vérification du fichier .env..." if [ -f .env ]; then echo -e "${GREEN}✅ Fichier .env trouvé${NC}" # Vérifier DB_ENGINE DB_ENGINE=$(grep "^DB_ENGINE" .env | cut -d'=' -f2) if [ "$DB_ENGINE" = "mysql" ]; then echo -e "${GREEN} ✅ DB_ENGINE=mysql${NC}" else echo -e "${YELLOW} ⚠️ DB_ENGINE=$DB_ENGINE (devrait être 'mysql' pour MariaDB)${NC}" fi # Afficher les paramètres de connexion echo " Configuration actuelle:" grep "^DB_" .env | while read line; do key=$(echo $line | cut -d'=' -f1) value=$(echo $line | cut -d'=' -f2) if [ "$key" = "DB_PASSWORD" ]; then echo " $key=****" else echo " $key=$value" fi done else echo -e "${RED}❌ Fichier .env NON trouvé${NC}" echo -e "${YELLOW} 💡 Copiez .env.example vers .env et configurez-le${NC}" exit 1 fi echo "" # 4. Vérifier la connexion réseau au serveur MariaDB echo "4️⃣ Test de connexion réseau..." DB_HOST=$(grep "^DB_HOST" .env | cut -d'=' -f2) DB_PORT=$(grep "^DB_PORT" .env | cut -d'=' -f2) echo " Hôte: $DB_HOST" echo " Port: $DB_PORT" # Test de ping (optionnel, peut ne pas fonctionner avec Docker) if command -v nc &> /dev/null; then if nc -z -w3 "$DB_HOST" "$DB_PORT" 2>/dev/null; then echo -e "${GREEN}✅ Port $DB_PORT accessible sur $DB_HOST${NC}" else echo -e "${RED}❌ Port $DB_PORT NON accessible sur $DB_HOST${NC}" echo -e "${YELLOW} 💡 Vérifications:${NC}" echo -e "${YELLOW} 1. Le conteneur MariaDB est-il démarré?${NC}" echo -e "${YELLOW} docker ps | grep mariadb${NC}" echo -e "${YELLOW} 2. Le port est-il exposé?${NC}" echo -e "${YELLOW} docker port mariadb${NC}" fi else echo -e "${YELLOW}⚠️ 'nc' non disponible, impossible de tester le port${NC}" fi echo "" # 5. Vérifier la base de données SQLite source echo "5️⃣ Vérification de la base SQLite source..." if [ -f "db.sqlite3" ]; then SIZE=$(du -h db.sqlite3 | cut -f1) echo -e "${GREEN}✅ db.sqlite3 trouvé (taille: $SIZE)${NC}" else echo -e "${YELLOW}⚠️ db.sqlite3 non trouvé${NC}" fi echo "" # 6. Résumé echo "════════════════════════════════════════════════════════════" echo "📋 Résumé" echo "════════════════════════════════════════════════════════════" if [ -n "$MISSING_DEPS" ]; then echo -e "${RED}❌ Des dépendances manquent${NC}" echo "" echo "Installation recommandée:" echo " pip3 install -r requirements.txt" echo "" exit 1 fi echo -e "${GREEN}✅ Prêt pour la migration!${NC}" echo "" echo "Prochaines étapes:" echo " 1. Assurez-vous que le conteneur MariaDB est démarré" echo " 2. Vérifiez que DB_HOST pointe vers le bon serveur" echo " 3. Si DB_HOST='mariadb' ne fonctionne pas depuis votre Mac," echo " utilisez l'adresse IP de votre Raspberry Pi" echo " 4. Lancez le test de connexion:" echo " python3 scripts/test_mariadb_connection.py" echo " 5. Si tout fonctionne, lancez la migration:" echo " python3 scripts/migrate_to_mariadb.py" echo ""