Files
fintrack/docs/BACKUP_SYSTEM.md

3.3 KiB

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ètresSauvegardes 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 :

    # 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 :

    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ètresSauvegardes 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