Fix automatic database backup system for production

Resolves an issue where the automatic backup service was not initialized in the production environment, preventing daily backups. Updates `docker-compose.yml` to include a backup directory and volume, modifies `index.production.ts` to import and initialize the backup service, and enhances `replit.md` with details of the fix. A new verification script `scripts/verify-backup-system.sh` is added to confirm the system's functionality.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: cc2d271b-82f0-4d6a-9302-a0b067ffb429
Replit-Commit-Checkpoint-Type: full_checkpoint
This commit is contained in:
michaelschal committed 2025-08-18 12:06:40 +00:00
1 parent b3ad47fe83
commit c851aacb28
4 files changed
+114 -1

No files matched your search

+105
View File
@@ -0,0 +1,105 @@
#!/bin/bash
# Script de vérification du système de sauvegarde automatique
# Usage: ./scripts/verify-backup-system.sh
set -e
echo "🔍 VÉRIFICATION DU SYSTÈME DE SAUVEGARDE AUTOMATIQUE"
echo "=================================================="
# 1. Vérifier que les containers sont en cours d'exécution
echo "1. Vérification des containers Docker..."
if docker-compose ps | grep -q "logiflow.*Up"; then
echo "✅ Container LogiFlow en cours d'exécution"
else
echo "❌ Container LogiFlow non disponible"
exit 1
fi
if docker-compose ps | grep -q "logiflow-db.*Up"; then
echo "✅ Container PostgreSQL en cours d'exécution"
else
echo "❌ Container PostgreSQL non disponible"
exit 1
fi
# 2. Vérifier la connectivité à la base de données
echo ""
echo "2. Vérification de la connectivité à la base de données..."
if docker-compose exec logiflow-db pg_isready -U logiflow_admin -d logiflow_db > /dev/null 2>&1; then
echo "✅ Base de données accessible"
else
echo "❌ Base de données non accessible"
exit 1
fi
# 3. Vérifier la présence de pg_dump dans le container
echo ""
echo "3. Vérification de pg_dump..."
if docker-compose exec logiflow which pg_dump > /dev/null 2>&1; then
echo "✅ pg_dump disponible"
docker-compose exec logiflow pg_dump --version
else
echo "❌ pg_dump non disponible"
exit 1
fi
# 4. Vérifier le répertoire de sauvegarde
echo ""
echo "4. Vérification du répertoire de sauvegarde..."
if docker-compose exec logiflow ls -la /app/backups > /dev/null 2>&1; then
echo "✅ Répertoire /app/backups accessible"
echo "Contenu du répertoire de sauvegarde :"
docker-compose exec logiflow ls -la /app/backups
else
echo "❌ Répertoire de sauvegarde non accessible"
exit 1
fi
# 5. Vérifier la table database_backups
echo ""
echo "5. Vérification de la table database_backups..."
if docker-compose exec logiflow-db psql -U logiflow_admin -d logiflow_db -c "SELECT COUNT(*) FROM database_backups;" > /dev/null 2>&1; then
echo "✅ Table database_backups accessible"
echo "Sauvegardes enregistrées :"
docker-compose exec logiflow-db psql -U logiflow_admin -d logiflow_db -c "SELECT filename, created_at, backup_type, status FROM database_backups ORDER BY created_at DESC LIMIT 5;" 2>/dev/null || echo "Aucune sauvegarde trouvée"
else
echo "❌ Table database_backups non accessible"
exit 1
fi
# 6. Vérifier les logs du service de sauvegarde
echo ""
echo "6. Vérification des logs du service de sauvegarde..."
echo "Recherche du message d'initialisation du service de sauvegarde :"
if docker-compose logs logiflow | grep -q "Backup service initialized for automatic daily backups"; then
echo "✅ Service de sauvegarde initialisé"
else
echo "⚠️ Message d'initialisation non trouvé dans les logs récents"
fi
if docker-compose logs logiflow | grep -q "Automatic backup scheduled"; then
echo "✅ Planification automatique configurée"
else
echo "⚠️ Message de planification non trouvé dans les logs récents"
fi
echo ""
echo "7. Test de création d'une sauvegarde manuelle..."
echo "Pour tester une sauvegarde manuelle, connectez-vous à l'application et utilisez l'API :"
echo "curl -X POST http://localhost:3000/api/backups -H 'Content-Type: application/json' -d '{\"type\": \"manual\"}'"
echo ""
echo "🎉 VÉRIFICATION TERMINÉE"
echo "========================"
echo ""
echo "💡 INFORMATIONS IMPORTANTES :"
echo "- Les sauvegardes automatiques sont programmées quotidiennement à 2h00"
echo "- Les sauvegardes sont stockées dans le volume Docker 'backup_data'"
echo "- Maximum 10 sauvegardes conservées (les plus anciennes sont supprimées automatiquement)"
echo "- Les sauvegardes sont également enregistrées en base dans la table 'database_backups'"
echo ""
echo "🔧 EN CAS DE PROBLÈME :"
echo "- Redémarrez les containers : docker-compose restart"
echo "- Vérifiez les logs : docker-compose logs logiflow"
echo "- Vérifiez les variables d'environnement : docker-compose config"