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