# Système de Sauvegarde Automatique ## Vue d'ensemble Le système de sauvegarde automatique permet de sauvegarder périodiquement votre base de données SQLite avec une rotation automatique limitée à 10 sauvegardes. ## Fonctionnalités - ✅ Sauvegardes périodiques automatiques (quotidienne, hebdomadaire, mensuelle) - ✅ Rotation automatique (maximum 10 sauvegardes) - ✅ Sauvegardes manuelles à la demande - ✅ Restauration de sauvegardes - ✅ Configuration via l'interface des paramètres - ✅ Métadonnées stockées dans la base de données ## Configuration ### Via l'interface 1. Allez dans **Paramètres** → **Sauvegardes automatiques** 2. Activez les sauvegardes automatiques 3. Choisissez la fréquence (quotidienne, hebdomadaire, mensuelle) 4. Les sauvegardes seront créées automatiquement selon la fréquence choisie ### Sauvegarde manuelle Cliquez sur le bouton **"Créer une sauvegarde"** dans la section des sauvegardes. ## Planification automatique ### Sur Vercel Si vous déployez sur Vercel, le fichier `vercel.json` configure automatiquement un cron job qui vérifie et crée les sauvegardes quotidiennement à 2h du matin. ### En local ou autre hébergement Pour exécuter les sauvegardes automatiques, vous pouvez : 1. **Utiliser un cron job système** : ```bash # Exécuter tous les jours à 2h du matin 0 2 * * * cd /chemin/vers/projet && tsx scripts/run-backup.ts ``` 2. **Appeler l'endpoint API directement** : ```bash curl -X POST http://localhost:3000/api/backups/auto ``` 3. **Utiliser un service de planification externe** (comme GitHub Actions, etc.) qui appelle périodiquement `/api/backups/auto` ## Structure des fichiers - **Sauvegardes** : `prisma/backups/backup-YYYY-MM-DDTHH-mm-ss.db` - **Paramètres** : `prisma/backup-settings.json` - **Métadonnées** : Table `Backup` dans la base de données ## API Endpoints - `GET /api/backups` - Liste toutes les sauvegardes - `POST /api/backups` - Créer une sauvegarde manuelle - `DELETE /api/backups/[id]` - Supprimer une sauvegarde - `POST /api/backups/[id]/restore` - Restaurer une sauvegarde - `GET /api/backups/settings` - Obtenir les paramètres - `PUT /api/backups/settings` - Mettre à jour les paramètres - `POST /api/backups/auto` - Endpoint pour les sauvegardes automatiques (appelé par le cron) ## Rotation des sauvegardes Le système garde automatiquement les 10 sauvegardes les plus récentes. Les sauvegardes plus anciennes sont supprimées automatiquement lors de la création d'une nouvelle sauvegarde. ## Restauration ⚠️ **Attention** : La restauration d'une sauvegarde remplace complètement votre base de données actuelle. Une sauvegarde de sécurité est créée automatiquement avant la restauration. Pour restaurer une sauvegarde : 1. Allez dans **Paramètres** → **Sauvegardes automatiques** 2. Cliquez sur l'icône de restauration (flèche circulaire) à côté de la sauvegarde souhaitée 3. Confirmez la restauration 4. La page sera rechargée automatiquement après la restauration ## Notes techniques - Les sauvegardes sont des copies complètes du fichier SQLite - La taille des sauvegardes dépend de la taille de votre base de données - Les sauvegardes sont stockées localement dans le dossier `prisma/backups/` - Les métadonnées (nom, taille, date) sont stockées dans la table `Backup` de la base de données