- Préparation de la nouvelle branche pour les évolutions - Mise à jour de la version vers 3.2.4 - Intégration des modifications en cours 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
Scripts Utilitaires
Ce dossier contient des scripts utilitaires pour la gestion des bases de données et l'automatisation de tâches.
Structure
php/: Scripts PHP pour la manipulation des données et l'intégration avec l'APIshell/: Scripts shell pour l'automatisation et les opérations systèmepython/: Scripts Python pour le traitement des données et l'analysecron/: Scripts et configurations pour les tâches programmées
Migration geosector → geosector_app
Les scripts de migration permettent de transférer des données de la base MySQL geosector (sur un serveur distant) vers la base MariaDB geosector_app (locale).
Prérequis
- Accès SSH au serveur distant hébergeant la base MySQL geosector
- Accès à la base de données MariaDB geosector_app locale
- Droits suffisants pour lire/écrire dans les deux bases
- Clé SSH pour l'authentification au serveur distant
Utilisation
-
Configurer les paramètres de connexion dans le fichier
config.php:- Paramètres SSH (serveur, port, utilisateur, clé)
- Paramètres de la base de données source (distante)
- Paramètres de la base de données cible (locale)
-
Exécuter le script de migration souhaité :
php php/migrate_users.phpou
./shell/migrate_table.sh users -
Pour comparer les schémas de tables entre les deux bases :
python python/compare_schemas.py users./bash/migrate_table.sh users
Tâches programmées (cron)
Les scripts dans le dossier cron/ peuvent être configurés pour s'exécuter automatiquement via crontab.
Exemple de configuration crontab pour exécuter la synchronisation quotidienne :
# Synchronisation quotidienne à 2h du matin
0 2 * * * php /chemin/vers/api/scripts/cron/sync_databases.php > /dev/null 2>&1
Fonctionnement du tunnel SSH
Les scripts établissent automatiquement un tunnel SSH pour accéder à la base de données distante :
- Vérification de l'existence d'un tunnel déjà établi
- Création d'un tunnel SSH si nécessaire
- Exécution des opérations de base de données via le tunnel
- Fermeture propre du tunnel à la fin du script
Les tunnels utilisent un port local (par défaut 13306) pour rediriger vers le port MySQL du serveur distant.