FallenBirdyForm/databaseBackup/BACKUP_README.md

3.7 KiB

Database Backup Script

Das create_backup.sh Script erstellt automatisierte Backups der aktuellen Django-Datenbank mit organisierter Archivierung.

📋 Übersicht

Das Script erstellt:

  1. Archiviertes Backup: JAHR/MONAT/NAME_TIMESTAMP.sql (permanent)
  2. Standard-Backup: NAME.sql (überschreibbar für Migration)

🚀 Verwendung

Standard-Backup erstellen

cd databaseBackup
./create_backup.sh

Erstellt: fbf-backup.sql und 2025/07/fbf-backup_TIMESTAMP.sql

Backup mit eigenem Namen

./create_backup.sh production-backup

Erstellt: production-backup.sql und 2025/07/production-backup_TIMESTAMP.sql

Hilfe anzeigen

./create_backup.sh --help

📁 Verzeichnisstruktur

databaseBackup/
├── create_backup.sh           # Backup-Script
├── migrate_live_data.sh       # Migration-Script
├── fbf-backup.sql            # Standard-Backup (überschreibbar)
├── test-backup.sql           # Weiteres Standard-Backup
└── 2025/                     # Archiv-Verzeichnis
    └── 07/                   # Monat
        ├── fbf-backup_20250707_231754.sql
        └── test-backup_20250707_231826.sql

Features

  • 🔧 Automatische Konfiguration: Liest .env Datei oder verwendet Standard-Werte
  • 📊 Datenbank-Statistiken: Zeigt Datensatz-Anzahl pro Tabelle
  • 📦 Organisierte Archivierung: Jahr/Monat-Struktur
  • 🔄 Kompatibilität: Funktioniert mit migrate_live_data.sh
  • Docker-Integration: Nahtlose Container-Verwaltung
  • 📝 Ausführliche Logs: Farb-kodierte Fortschrittsanzeige

📊 Backup-Informationen

Das Script zeigt automatisch:

  • Dateigröße des Backups
  • Anzahl der Zeilen
  • Datensatz-Statistiken pro Tabelle
  • Erstellungszeit

🔧 Konfiguration

Automatische .env Erkennung

Das Script liest automatisch die .env Datei aus dem übergeordneten Verzeichnis:

DB_HOST='db'
DB_NAME='db_fbf'
DB_USER='fbf'
DB_PASSWORD='superSecret'

Standard-Werte (wenn .env nicht vorhanden)

DB_HOST=localhost
DB_NAME=fbf
DB_USER=fbf
DB_PASSWORD=fbfpassword
DB_PORT=5432

🔄 Integration mit Migration

Die erstellten Backups sind vollständig kompatibel mit dem Migration-Script:

# Backup erstellen
./create_backup.sh

# Backup wiederherstellen
./migrate_live_data.sh fbf-backup.sql

📋 Voraussetzungen

  • Docker und Docker Compose installiert
  • Laufende Container (wird automatisch geprüft)
  • Schreibberechtigung im databaseBackup Verzeichnis

🛠️ Problembehandlung

Container nicht bereit

cd ..
docker-compose up -d
cd databaseBackup
./create_backup.sh

Backup-Verzeichnis anzeigen

ls -la 2025/07/

Backup-Inhalt prüfen

head -20 fbf-backup.sql

Manual Database Access

cd ..
docker-compose exec db psql -U fbf -d db_fbf

📈 Backup-Workflow

  1. Script starten → Automatische Konfiguration
  2. Container prüfen → Status-Validierung
  3. Verzeichnis erstellen → Jahr/Monat-Struktur
  4. Datenbank exportieren → pg_dump via Docker
  5. Dateien erstellen → Archiv + Standard-Kopie
  6. Statistiken anzeigen → Daten-Übersicht
  7. Zusammenfassung → Erfolgs-Bestätigung

💡 Tipps

  • Regelmäßige Backups: Fügen Sie das Script zu Cron-Jobs hinzu
  • Archiv-Management: Alte Backups regelmäßig bereinigen
  • Standard-Backups: Ideal für schnelle Migrations-Tests
  • Archiv-Backups: Permanente Sicherung mit Zeitstempel

🎯 Nächste Schritte

Nach dem Backup können Sie:

  • Das Backup mit migrate_live_data.sh testen
  • Die Datenbank mit anderen Daten füllen
  • Bei Problemen schnell zum Backup zurückkehren