Migrationsanleitung
Diese Anleitung erklärt, wie Sie zwischen Versionen von duplistatus aktualisieren. Migrationen erfolgen automatisch – das Datenbankschema aktualisiert sich selbst, wenn Sie eine neue Version starten.
Manuelle Schritte sind nur erforderlich, wenn Sie benutzerdefinierte Benachrichtigungsvorlagen angepasst haben (Version 0.8.x hat Vorlagenvariablen geändert) oder externe API-Integrationen, die aktualisiert werden müssen (Version 0.7.x hat API-Feldnamen geändert, Version 0.9.x erfordert Authentifizierung).
Übersicht
duplistatus migriert Ihr Datenbankschema beim Upgrade automatisch. Das System:
- Erstellt eine Sicherung Ihrer Datenbank, bevor Änderungen vorgenommen werden
- Aktualisiert das Datenbankschema auf die neueste Version
- Behält alle vorhandenen Daten bei (Server, Backups, Konfiguration)
- Überprüft, ob die Migration erfolgreich abgeschlossen wurde
Sichern Ihrer Datenbank vor der Migration
Bevor Sie auf eine neue Version aktualisieren, wird empfohlen, eine Sicherung Ihrer Datenbank zu erstellen. Dies stellt sicher, dass Sie Ihre Daten wiederherstellen können, falls während des Migrationsprozesses etwas schief geht.
Wenn Sie Version 1.2.1 oder später ausführen
Verwenden Sie die integrierte Datenbanksicherungsfunktion:
- Navigieren Sie in der Weboberfläche zu Einstellungen → Datenbankverwaltung
- Wählen Sie im Abschnitt Datenbank-Backup ein Backup-Format aus:
- Datenbankdatei (.db): Binäres Format – schnellste Sicherung, bewahrt exakt alle Datenbankstruktur erhalten
- SQL-Dump (.sql): Textformat – menschenlesbare SQL-Anweisungen
- Klicken Sie auf Backup herunterladen
- Die Sicherungsdatei wird mit einem Zeitstempel versehen auf Ihren Computer heruntergeladen
Weitere Details finden Sie in der Dokumentation zur Datenbankverwaltung.
Wenn Sie eine Version vor 1.2.1 ausführen
Sicherung
Sie müssen vor dem Fortfahren manuell eine Sicherung der Datenbank erstellen. Die Datenbankdatei befindet sich unter /app/data/backups.db innerhalb des Containers.
Für Linux-Benutzer
Wenn Sie Linux verwenden, machen Sie sich keine Gedanken darüber, Hilfscontainer zu starten. Sie können den nativen Befehl cp verwenden, um die Datenbank direkt aus dem laufenden Container auf Ihren Host zu extrahieren.
Verwendung von Docker oder Podman:
# Replace 'duplistatus' with your actual container name if different
docker cp duplistatus:/app/data/backups.db ./duplistatus-backup-$(date +%Y%m%d).db
(Bei Verwendung von Podman ersetzen Sie einfach docker durch podman im obigen Befehl.)
Für Windows-Benutzer
Wenn Sie Docker Desktop unter Windows ausführen, gibt es zwei einfache Möglichkeiten, dies ohne Befehlszeile zu handhaben:
Option A: Docker Desktop verwenden (am einfachsten)
- Öffnen Sie das Docker Desktop Dashboard.
- Gehen Sie auf die Registerkarte Container und klicken Sie auf Ihren duplistatus-Container.
- Klicken Sie auf die Registerkarte Dateien.
- Navigieren Sie zu
/app/data/. - Klicken Sie mit der rechten Maustaste auf
backups.dbund wählen Sie Speichern unter..., um sie in Ihre Windows-Ordner herunterzuladen.
Option B: Verwenden Sie PowerShell
Falls Sie die Befehlszeile bevorzugen, können Sie PowerShell verwenden, um die Datei auf Ihren Desktop zu kopieren:
docker cp duplistatus:/app/data/backups.db $HOME\Desktop\duplistatus-backup.db
Falls Sie Bind-Mounts verwenden
Wenn Sie Ihren Container ursprünglich mit einem Bind-Mount eingerichtet haben (z. B. haben Sie einen lokalen Ordner wie /opt/duplistatus mit dem Container verknüpft), benötigen Sie überhaupt keine Docker-Befehle. Kopieren Sie die Datei einfach über Ihren Dateimanager:
- Linux:
cp /path/to/your/folder/backups.db ~/backups.db - Windows: Kopieren Sie die Datei einfach im Datei-Explorer aus dem Ordner, den Sie während der Einrichtung festgelegt haben.
Wiederherstellen Ihrer Daten
Falls Sie Ihre Datenbank aus einer früheren Sicherung wiederherstellen müssen, folgen Sie den unten stehenden Schritten, entsprechend Ihrem Betriebssystem.
Beenden Sie den Container vor der Wiederherstellung der Datenbank, um Dateibeschädigungen zu vermeiden.
Für Linux-Benutzer
Der einfachste Weg zur Wiederherstellung ist es, die Sicherungsdatei zurück in den internen Speicherpfad des Containers zu „schieben“.
Verwendung von Docker oder Podman:
# stop the container
docker stop duplistatus
# Replace 'duplistatus-backup.db' with your actual backup filename
docker cp ./duplistatus-backup.db duplistatus:/app/data/backups.db
# Restart the container
docker start duplistatus
Für Windows-Benutzer
Wenn Sie Docker Desktop verwenden, können Sie die Wiederherstellung über die grafische Oberfläche oder PowerShell durchführen.
Option A: Docker Desktop (grafische Oberfläche) verwenden
- Stellen Sie sicher, dass der duplistatus-Container läuft (Docker Desktop erfordert, dass der Container aktiv ist, um Dateien über die grafische Oberfläche hochzuladen).
- Wechseln Sie zum Reiter „Files“ in Ihren Containereinstellungen.
- Navigieren Sie zu
/app/data/. - Klicken Sie mit der rechten Maustaste auf die vorhandene backups.db und wählen Sie Löschen.
- Klicken Sie auf den Button „Import“ (oder klicken Sie mit der rechten Maustaste in den Ordnerbereich) und wählen Sie Ihre Sicherungsdatei von Ihrem Computer aus.
Benennen Sie die importierte Datei exakt in backups.db um, falls sie einen Zeitstempel im Namen trägt.
Starten Sie den Container neu.
Option B: Verwenden Sie PowerShell
# Copy the file from your Desktop back into the container
docker cp $HOME\Desktop\duplistatus-backup.db duplistatus:/app/data/backups.db
# Restart the container
docker start duplistatus
Falls Sie Bind-Mounts verwenden
Wenn Sie einen lokalen Ordner verwenden, der mit dem Container verknüpft ist, benötigen Sie keine speziellen Befehle.
- Stoppen Sie den Container.
- Kopieren Sie Ihre Sicherungsdatei manuell in Ihren verknüpften Ordner (z. B.
/opt/duplistatusoderC:\duplistatus_data). - Stellen Sie sicher, dass die Datei genau den Namen
backups.dbträgt. - Starten Sie den Container.
Wenn Sie die Datenbank manuell wiederherstellen, können Berechtigungsfehler auftreten.
Überprüfen Sie die Containerprotokolle und passen Sie gegebenenfalls die Berechtigungen an. Weitere Informationen finden Sie im Abschnitt Fehlerbehebung weiter unten.
Automatischer Migrationsprozess
Wenn Sie eine neue Version starten, werden Migrationen automatisch ausgeführt:
- Sicherung erstellen: Eine zeitgestempelte Sicherung wird in Ihrem DatenvVerzeichnis erstellt
- Schema-Aktualisierung: Datenbanktabellen und -felder werden nach Bedarf aktualisiert
- Datenmigration: Alle vorhandenen Daten werden erhalten und migriert
- Überprüfung: Der erfolgreiche Abschluss der Migration wird protokolliert
Überwachung der Migration
Überprüfen Sie die Docker-Protokolle, um den Fortschritt der Migration zu überwachen:
docker logs <container-name>
Suchen Sie nach Nachrichten wie:
"Found X pending migrations""Running consolidated migration X.0...""Migration X.0 completed successfully""Database backup created: /path/to/backups-copy-YYYY-MM-DDTHH-MM-SS.db""All migrations completed successfully"
Versionsabhängige Migrationshinweise
Aktualisierung auf Version 0.9.x oder höher (Schema v4.0)
Authentifizierung ist jetzt erforderlich. Alle Benutzer müssen sich nach der Aktualisierung anmelden.
Was automatisch geändert wird
- Datenbankschema wird von v3.1 auf v4.0 migriert
- Neue Tabellen werden erstellt:
users,sessions,audit_log - Standard-Admin-Konto wird automatisch erstellt
- Alle bestehenden Sitzungen werden ungültig
Was Sie tun müssen
- Melden Sie sich an mit den Standard-Admin-Anmeldeinformationen:
- Benutzername:
admin - Passwort:
Duplistatus09
- Benutzername:
- Ändern Sie das Passwort, wenn Sie dazu aufgefordert werden (erforderlich bei erster Anmeldung)
- Erstellen Sie Benutzerkonten für andere Benutzer (Einstellungen → Benutzer)
- Aktualisieren Sie externe API-Integrationen, um Authentifizierung einzubeziehen (siehe Rückwärtsinkompatible API-Änderungen)
- Konfigurieren Sie die Aufbewahrung des Prüfprotokolls, falls erforderlich (Einstellungen → Prüfprotokoll)
Falls Sie gesperrt sind
Verwenden Sie das Admin-Wiederherstellungstool:
docker exec -it duplistatus /app/admin-recovery admin NewPassword123
Siehe Admin-Wiederherstellungsanleitung für Details.
Aktualisierung auf Version 0.8.x
Was automatisch geändert wird
- Datenbankschema auf v3.1 aktualisiert
- Hauptschlüssel für Verschlüsselung generiert (gespeichert in
.duplistatus.key) - Sitzungen ungültig gemacht (neue CSRF-geschützte Sitzungen erstellt)
- Passwörter mit neuem System verschlüsselt
Was Sie tun müssen
- Aktualisieren Sie Benachrichtigungsvorlagen, falls Sie sie angepasst haben:
- Ersetzen Sie
{backup_interval_value}und{backup_interval_type}durch{backup_interval} - Standardvorlagen werden automatisch aktualisiert
- Ersetzen Sie
Sicherheitshinweise
- Stellen Sie sicher, dass die Datei
.duplistatus.keygesichert ist (hat Berechtigungen 0400) - Sitzungen laufen nach 24 Stunden ab
Aktualisierung auf Version 0.7.x
Was sich automatisch ändert
machinesTabelle umbenannt zuserversmachine_idFelder umbenannt zuserver_id- Neue Felder hinzugefügt:
alias,notes,created_at,updated_at
Was Sie tun müssen
- Externe API-Integrationen aktualisieren:
- Ändern Sie
totalMachines→totalServersin/api/summary - Ändern Sie
machine→serverin API-Antwortobjekten - Ändern Sie
backup_types_count→backup_jobs_countin/api/lastbackups/{serverId} - Aktualisieren Sie Endpunktpfade von
/api/machines/...zu/api/servers/...
- Ändern Sie
- Benachrichtigungsvorlagen aktualisieren:
- Ersetzen Sie
{machine_name}durch{server_name}
- Ersetzen Sie
Siehe Rückwärtsinkompatible API-Änderungen für detaillierte API-Migrationschritte.
Prüfliste nach der Migration
Nach der Aktualisierung überprüfen Sie:
- Alle Server werden korrekt im Dashboard angezeigt
- Sicherungsverlauf ist vollständig und zugänglich
- Benachrichtigungen funktionieren (NTFY/E-Mail testen)
- Externe API-Integrationen funktionieren (falls zutreffend)
- Einstellungen sind zugänglich und korrekt
- Backup-Überwachung funktioniert ordnungsgemäß
- Erfolgreich angemeldet (0.9.x+)
- Standard-Admin-Passwort geändert (0.9.x+)
- Benutzerkonten für andere Benutzer erstellt (0.9.x+)
- Externe API-Integrationen mit Authentifizierung aktualisiert (0.9.x+)
Problembehandlung
Migration schlägt fehl
- Überprüfen Sie den Speicherplatz (Sicherung benötigt Platz)
- Stellen Sie Schreibberechtigungen für das Datenverzeichnis sicher
- Prüfen Sie Container-Protokolle auf spezifische Fehler
- Wiederherstellung aus Sicherung falls nötig (siehe Rollback unten)
Daten nach Migration fehlen
- Stellen Sie sicher, dass Sicherung erstellt wurde (Datenverzeichnis prüfen)
- Prüfen Sie Container-Protokolle auf Nachrichten zur Sicherungserstellung
- Prüfen Sie Integrität der Datenbankdatei
Authentifizierungsprobleme (0.9.x+)
- Stellen Sie sicher, dass Standard-Admin-Konto existiert (Protokolle prüfen)
- Versuchen Sie Standard-Anmeldedaten:
admin/Duplistatus09 - Nutzen Sie Admin-Wiederherstellungswerkzeug bei Sperre
- Stellen Sie sicher, dass
usersTabelle in Datenbank existiert
API-Fehler
- Prüfen Sie Rückwärtsinkompatible API-Änderungen für Endpunktaktualisierungen
- Aktualisieren Sie externe Integrationen mit neuen Feldnamen
- Fügen Sie Authentifizierung zu API-Anfragen hinzu (0.9.x+)
- Testen Sie API-Endpunkte nach Migration
Master-Schlüssel-Probleme (0.8.x+)
- Stellen Sie sicher, dass die Datei
.duplistatus.keyzugänglich ist - Überprüfen Sie, ob die Dateiberechtigungen 0400 lauten
- Prüfen Sie die Container-Protokolle auf Fehler bei der Schlüsselgenerierung
Podman DNS-Konfiguration
Wenn Sie Podman verwenden und nach einem Upgrade Netzwerkverbindungsprobleme auftreten, müssen Sie möglicherweise die DNS-Einstellungen für Ihren Container konfigurieren. Weitere Details finden Sie im Abschnitt DNS-Konfiguration des Installationshandbuchs.
Rollback-Verfahren
Wenn Sie zu einer früheren Version zurückkehren müssen:
- Stoppen Sie den Container:
docker stop <container-name>(oderpodman stop <container-name>) - Suchen Sie Ihre Sicherung:
- Wenn Sie eine Sicherung über die Web-Oberfläche (Version 1.2.1+) erstellt haben, verwenden Sie diese heruntergeladene Sicherungsdatei
- Wenn Sie eine manuelle Volume-Sicherung erstellt haben, entpacken Sie sie zuerst
- Automatische Migrationsicherungen befinden sich im Datenverzeichnis (zeitgestempelte Dateien
.db)
- Stellen Sie die Datenbank wieder her:
- Für Web-Oberflächen-Sicherungen (Version 1.2.1+): Verwenden Sie die Wiederherstellungsfunktion in
Settings → Database Maintenance(siehe Datenbankverwaltung) - Für manuelle Sicherungen: Ersetzen Sie
backups.dbin Ihrem Datenverzeichnis/Volume durch die Sicherungsdatei
- Für Web-Oberflächen-Sicherungen (Version 1.2.1+): Verwenden Sie die Wiederherstellungsfunktion in
- Verwenden Sie die vorherige Image-Version: Laden Sie das vorherige Container-Image herunter und führen Sie es aus
- Starten Sie den Container: Starten Sie mit der vorherigen Version
Ein Rollback kann zu Datenverlust führen, wenn das neuere Schema nicht mit der älteren Version kompatibel ist. Stellen Sie immer sicher, dass Sie eine aktuelle Sicherung haben, bevor Sie einen Rollback versuchen.
Problembehandlung bei Ihrer Wiederherstellung / Rollback
Wenn die Anwendung nach einer Wiederherstellung oder einem Rollback nicht startet oder Ihre Daten nicht erscheinen, überprüfen Sie folgende häufige Probleme:
1. Datenbank-Dateiberechtigungen (Linux/Podman)
Wenn Sie die Datei als Benutzer root wiederhergestellt haben, verfügt die Anwendung innerhalb des Containers möglicherweise nicht über die Berechtigung, sie zu lesen oder zu schreiben.
- Das Symptom: Die Protokolle zeigen "Permission Denied" oder "Read-only database."
- Die Lösung: Setzen Sie die Berechtigungen der Datei innerhalb des Containers zurück, um sicherzustellen, dass sie zugänglich ist.
# Set ownership (usually UID 1000 or the app user)
docker exec -u 0 duplistatus chown 1000:1000 /app/data/backups.db
# Set read/write permissions
docker exec -u 0 duplistatus chmod 664 /app/data/backups.db
2. Falscher Dateiname
Die Anwendung sucht gezielt nach einer Datei mit dem Namen backups.db.
- Das Symptom: Die Anwendung startet, sieht aber "leer" aus (wie eine Neuinstallation).
- Die Lösung: Überprüfen Sie das Verzeichnis
/app/data/. Wenn Ihre Dateiduplistatus-backup-2024.dbheißt oder eine.sqlite-Erweiterung hat, ignoriert die App sie. Verwenden Sie den Befehlmvoder die Docker Desktop-GUI, um sie exakt inbackups.dbumzubenennen.
3. Container wurde nicht neu gestartet
Auf einigen Systemen aktualisiert die Verwendung von docker cp, während der Container läuft, möglicherweise nicht sofort die Verbindung der Anwendung zur Datenbank.
- Die Lösung: Führen Sie nach einer Wiederherstellung immer einen vollständigen Neustart durch:
docker restart duplistatus
4. Datenbank-Versionskonflikt
Wenn Sie eine Sicherung aus einer viel neueren Version von duplistatus in eine ältere Version der Anwendung wiederherstellen, kann das Datenbankschema inkompatibel sein.
- Die Lösung: Stellen Sie immer sicher, dass Sie dieselbe (oder eine neuere) Version des duplistatus-Images ausführen wie diejenige, die die Sicherung erstellt hat. Überprüfen Sie Ihre Version mit:
docker inspect duplistatus --format '{{.Config.Image}}'
Datenbankschema-Versionen
| Anwendungsversion | Schema-Version | Wichtige Änderungen |
|---|---|---|
| 0.6.x und früher | v1.0 | Initiales Schema |
| 0.7.x | v2.0, v3.0 | Konfigurationen hinzugefügt, machines zu Server umbenannt |
| 0.8.x | v3.1 | Erweiterte Sicherungsfelder, Verschlüsselungsunterstützung |
| 0.9.x, 1.0.x, 1.1.x, 1.2.x, 1.3.x | v4.0 | Benutzerzugriffskontrolle, Authentifizierung, Audit-Protokollierung |
Hilfe erhalten
- Dokumentation: Benutzerhandbuch
- API-Referenz: API-Dokumentation
- API-Änderungen: Rückwärtsinkompatible API-Änderungen
- Versionshinweise: Prüfen Sie versionspezifische Versionshinweise für detaillierte Änderungen
- Community: GitHub-Diskussionen
- Probleme: GitHub-Probleme