Migration de données
Cette section couvre les scénarios courants : migration depuis une autre version d'Aiterava, import de données existantes, et sauvegarde/restauration.
Sauvegardes automatiques
Sauvegarde de la base de données
# Dump PostgreSQL depuis le container
docker exec aiterava_onprem_db pg_dump \
-U aiterava aiterava \
| gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz
Sauvegarde des fichiers media
docker cp aiterava_onprem_api:/app/media ./media_backup_$(date +%Y%m%d)/
Script de sauvegarde automatique (cron)
# /opt/aiterava/backup.sh
#!/bin/bash
BACKUP_DIR="/opt/aiterava/backups"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p "$BACKUP_DIR"
# DB
docker exec aiterava_onprem_db pg_dump \
-U "${POSTGRES_USER:-aiterava}" "${POSTGRES_DB:-aiterava}" \
| gzip > "$BACKUP_DIR/db_$DATE.sql.gz"
# Supprimer les sauvegardes de plus de 30 jours
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +30 -delete
echo "Sauvegarde $DATE terminée"
chmod +x /opt/aiterava/backup.sh
# Ajouter au cron : sauvegarde quotidienne à 2h
(crontab -l 2>/dev/null; echo "0 2 * * * /opt/aiterava/backup.sh >> /var/log/aiterava-backup.log 2>&1") | crontab -
Restauration
# Arrêter l'API pour éviter les écritures pendant la restauration
docker compose -f docker-compose.onprem.yml stop api celery celery-beat
# Restaurer
gunzip -c backup_20241104_020000.sql.gz | \
docker exec -i aiterava_onprem_db psql -U aiterava aiterava
# Redémarrer
docker compose -f docker-compose.onprem.yml start api celery celery-beat
Migration depuis une instance SaaS Aiterava
Si vous souhaitez basculer d'une instance SaaS vers on-premise, contactez support@aiterraxis.com pour obtenir un export de vos données au format compatible.
Migrations de schéma (mises à jour)
Les migrations Django sont appliquées automatiquement lors des mises à jour via le tableau de bord ou update.sh. Pour les appliquer manuellement :
docker exec aiterava_onprem_api python manage.py migrate --noinput
docker exec aiterava_onprem_api python manage.py showmigrations | grep "\[ \]"
# Les lignes avec [ ] sont des migrations non encore appliquées
Avant toute migration manuelle
Faites toujours une sauvegarde avant d'appliquer des migrations manuellement sur une base de données de production.
Prochaine étape → Dépannage