Files
fintrack/docs/BACKUP_SYSTEM.md

91 lines
3.3 KiB
Markdown

# 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