Migrationsleitfaden
Dieses Handbuch 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 aktualisiert werden müssen (Version 0.7.x hat API-Feldnamen geändert, Version 0.9.x erfordert Authentifizierung).
Übersicht
duplistatus migriert Ihr Datenbankschema bei einem Upgrade automatisch. Das System:
- Erstellt eine Sicherung Ihrer Datenbank vor Änderungen
- Aktualisiert das Datenbankschema auf die neueste Version
- Bewahrt alle vorhandenen Daten (Server, Sicherungen, Konfiguration)
- Überprüft, ob die Migration erfolgreich abgeschlossen wurde
Sicherung Ihrer Datenbank vor der Migration
Vor dem Upgrade auf eine neue Version wird empfohlen, eine Sicherung von Ihrer Datenbank zu erstellen. Dies stellt sicher, dass Sie Ihre Daten wiederherstellen können, falls während des Migrationsprozesses etwas schiefgeht.
Wenn Sie Version 1.2.1 oder später ausführen
Verwenden Sie die integrierte Datenbanksicherungsfunktion:
- Navigieren Sie zu Einstellungen → Datenbankwartung in der Weboberfläche
- Wählen Sie im Abschnitt Datenbanksicherung ein Sicherungsformat aus:
- Datenbankdatei (.db): Binärformat – schnellste Sicherung, behält alle Datenbankstrukturen exakt bei
- SQL-Dump (.sql): Textformat – lesbare SQL-Anweisungen
- Klicken Sie auf Sicherung herunterladen
- Die Sicherungsdatei wird auf Ihren Computer mit einem Zeitstempel-Dateinamen heruntergeladen
Weitere Details finden Sie in der Dokumentation zur Datenbankwartung.
Wenn Sie eine Version vor 1.2.1 ausführen
Sicherung
Sie müssen die Datenbank manuell sichern, bevor Sie fortfahren. Die Datenbankdatei befindet sich unter /app/data/backups.db im Container.
Für Linux-Benutzer
Wenn Sie Linux verwenden, müssen Sie sich keine Gedanken über das Starten von Hilfcontainern machen. Sie können den nativen cp-Befehl verwenden, um die Datenbank direkt aus dem laufenden Container auf Ihren Host zu extrahieren.
Docker oder Podman verwenden:
# Replace 'duplistatus' with your actual container name if different
docker cp duplistatus:/app/data/backups.db ./duplistatus-backup-$(date +%Y%m%d).db
(Wenn Sie Podman verwenden, ersetzen Sie einfach docker durch podman im obigen Befehl.)
Für Windows-Benutzer
Wenn Sie Docker Desktop unter Windows ausführen, haben Sie zwei einfache Möglichkeiten, dies ohne Verwendung der Befehlszeile zu bewältigen:
Option A: Docker Desktop verwenden (Am einfachsten)
- Öffnen Sie das Docker Desktop Dashboard.
- Gehen Sie zur Registerkarte Containers 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 die Datei in Ihre Windows-Ordner herunterzuladen.
Option B: PowerShell verwenden
Wenn Sie das Terminal 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
Wenn 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 dem Container zugeordnet), benötigen Sie überhaupt keine Docker-Befehle. Kopieren Sie die Datei einfach mit Ihrem 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
Wenn Sie Ihre Datenbank aus einer vorherigen Sicherung wiederherstellen müssen, führen Sie die folgenden Schritte basierend auf Ihrem Betriebssystem aus.
Stoppen Sie den Container vor der Wiederherstellung der Datenbank, um Dateikorruption zu verhindern.
Für Linux-Benutzer
Die einfachste Möglichkeit zur Wiederherstellung besteht darin, die Sicherungsdatei in den internen Speicherplatz des Containers "zurückzuspielen".
Docker oder Podman verwenden:
# 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 GUI oder PowerShell durchführen.
Option A: Docker Desktop (GUI) verwenden
- Stellen Sie sicher, dass der duplistatus-Container aktiv ist (Docker Desktop erfordert, dass der Container aktiv ist, um Dateien über die GUI hochzuladen).
- Gehen Sie zur Registerkarte „Dateien" in Ihren Container-Einstellungen.
- 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 die Schaltfläche „Importieren" (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 in genau backups.db um, wenn sie einen Zeitstempel im Namen hat.
Starten Sie den Container neu.
Option B: PowerShell verwenden
# 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
Wenn Sie Bind Mounts verwenden
Wenn Sie einen lokalen Ordner dem Container zuordnen, benötigen Sie keine speziellen Befehle.
- Stoppen Sie den Container.
- Kopieren Sie Ihre Sicherungsdatei manuell in Ihren zugeordneten Ordner (z. B.
/opt/duplistatusoderC:\duplistatus_data). - Stellen Sie sicher, dass die Datei genau
backups.dbbenannt ist. - Starten Sie den Container.
docker logs <container-name>
Wenn Sie die Datenbank manuell wiederherstellen, können Berechtigungsfehler auftreten.
Prüfen Sie die Container-Protokolle und passen Sie die Berechtigungen bei Bedarf an. Weitere Informationen finden Sie im Abschnitt Troubleshooting weiter unten.
Automatischer Migrationsprozess
Wenn Sie eine neue Version starten, werden Migrationen automatisch ausgeführt:
- Sicherungserstellung: Eine mit Zeitstempel versehene Sicherung wird in Ihrem Datenverzeichnis erstellt
- Schema-Update: Datenbanktabellen und Felder werden nach Bedarf aktualisiert
- Datenmigration: Alle vorhandenen Daten werden beibehalten und migriert
- Verifizierung: Der Migrationserfolg wird protokolliert
Überwachung der Migration
Prüfen Sie Docker-Protokolle, um den Migrationsverlauf zu überwachen:
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"
Versionsspezifische Migrationshinweise
Upgrade auf Version 0.9.x oder höher (Schema v4.0)
Authentifizierung ist jetzt erforderlich. Alle Benutzer müssen sich nach dem Upgrade anmelden.
Was ändert sich automatisch
- Datenbankschema wird von v3.1 zu v4.0 migriert
- Neue Tabellen erstellt:
users,sessions,audit_log - Standard-Admin-Konto wird automatisch erstellt
- Alle vorhandenen Sitzungen ungültig gemacht
Was Sie tun müssen
- Anmelden mit Standard-Admin-Anmeldedaten:
- Benutzername:
admin - Passwort:
Duplistatus09
- Benutzername:
- Passwort ändern wenn aufgefordert (erforderlich bei der ersten Anmeldung)
- Benutzerkonten erstellen für andere Benutzer (Einstellungen → Benutzer)
- Externe API-Integrationen aktualisieren, um Authentifizierung einzubeziehen (siehe Rückwärts inkompatible API-Änderungen)
- Audit-Log-Aufbewahrung konfigurieren, falls erforderlich (Einstellungen → Audit-Log)
Wenn Sie gesperrt sind
Verwenden Sie das Admin-Wiederherstellungstool:
docker exec -it duplistatus /app/admin-recovery admin NewPassword123
Weitere Informationen finden Sie im Admin Recovery Guide.
Upgrade auf Version 0.8.x
Was ändert sich automatisch
- 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
- Benachrichtigungsvorlagen aktualisieren, falls Sie diese angepasst haben:
- Ersetzen Sie
{backup_interval_value}und{backup_interval_type}durch{backup_interval} - Standard-Vorlagen werden automatisch aktualisiert
- Ersetzen Sie
Sicherheitshinweise
- Stellen Sie sicher, dass die Datei
.duplistatus.keygesichert ist (hat 0400-Berechtigungen) - Sitzungen verfallen nach 24 Stunden
Upgrade auf Version 0.7.x
Was ändert sich automatisch
machinesTabelle inserversumbenanntmachine_idFelder inserver_idumbenannt- Neue Felder hinzugefügt:
alias,notes,created_at,updated_at
Was Sie tun müssen
- Externe API-Integrationen aktualisieren:
totalMachines→totalServersin/api/summaryändernmachine→serverin API-Antwortobjekten ändernbackup_types_count→backup_jobs_countin/api/lastbackups/{serverId}ändern- Endpunkt-Pfade von
/api/machines/...zu/api/servers/...aktualisieren
- Benachrichtigungsvorlagen aktualisieren:
{machine_name}durch{server_name}ersetzen
Siehe Rückwärts inkompatible API-Änderungen für detaillierte API-Migrationschritte.
Checkliste nach der Migration
Nach dem Upgrade bestätigen:
- 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
- Sicherungsüberwachung funktioniert korrekt
- 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+)
Fehlerbehebung
Migration schlägt fehl
- Prüfen Sie den Speicherplatz (Sicherung erfordert Speicherplatz)
- Bestätigen Sie Schreibberechtigungen im Datenverzeichnis
- Überprüfen Sie Container-Protokolle auf spezifische Fehler
- Stellen Sie bei Bedarf aus einer Sicherung wieder her (siehe Rollback unten)
Daten fehlen nach der Migration
- Bestätigen Sie, dass die Sicherung erstellt wurde (Datenverzeichnis prüfen)
- Überprüfen Sie die Container-Protokolle auf Nachrichten zur Sicherungserstellung
- Prüfen Sie die Integrität der Datenbankdatei
Authentifizierungsprobleme (0.9.x+)
- Bestätigen Sie, dass das Standard-Admin-Konto vorhanden ist (Protokolle prüfen)
- Versuchen Sie Standard-Anmeldedaten:
admin/Duplistatus09 - Verwenden Sie das Admin-Wiederherstellungstool, wenn gesperrt
- Bestätigen Sie, dass die Tabelle
usersin der Datenbank vorhanden ist
API-Fehler
- Überprüfen Sie Rückwärts inkompatible API-Änderungen auf Endpunkt-Updates
- Aktualisieren Sie externe Integrationen mit neuen Feldnamen
- Fügen Sie Authentifizierung zu API-Anfragen hinzu (0.9.x+)
- Testen Sie API-Endpunkte nach der Migration
Probleme mit Master Key (0.8.x+)
- Stellen Sie sicher, dass die Datei
.duplistatus.keyzugänglich ist - Bestätigen Sie, dass die Dateiberechtigungen 0400 sind
- Prüfen Sie die Container-Protokolle auf Fehler bei der Schlüsselerzeugung
Podman-DNS-Konfiguration
Wenn Sie Podman verwenden und nach einem Upgrade Probleme mit der Netzwerkkonnektivität haben, müssen Sie möglicherweise die DNS-Einstellungen für Ihren Container konfigurieren. Weitere Informationen finden Sie im Abschnitt zur DNS-Konfiguration des Installationshandbuchs.
Rollback-Verfahren
Wenn Sie zu einer vorherigen Version zurückwechseln müssen:
- Container stoppen:
docker stop <container-name>(oderpodman stop <container-name>) - Ihre Sicherung suchen:
- Wenn Sie eine Sicherung über die Weboberfläche erstellt haben (Version 1.2.1+), verwenden Sie diese heruntergeladene Sicherungsdatei
- Wenn Sie eine manuelle Volume-Sicherung erstellt haben, extrahieren Sie diese zunächst
- Automatische Migrationssicherungen befinden sich im Datenverzeichnis (mit Zeitstempel versehene
.db-Dateien)
- Datenbank wiederherstellen:
- Für Sicherungen der Weboberfläche (Version 1.2.1+): Verwenden Sie die Wiederherstellungsfunktion in
Einstellungen → Datenbankwartung(siehe Datenbankwartung) - Für manuelle Sicherungen: Ersetzen Sie
backups.dbin Ihrem Datenverzeichnis/Volume mit der Sicherungsdatei
- Für Sicherungen der Weboberfläche (Version 1.2.1+): Verwenden Sie die Wiederherstellungsfunktion in
- Vorherige Image-Version verwenden: Rufen Sie das vorherige Container-Image ab und führen Sie es aus
- Container starten: Starten Sie mit der vorherigen Version
Das Zurückrollen kann zu Datenverlust führen, wenn das neuere Schema mit der älteren Version nicht kompatibel ist. Stellen Sie immer sicher, dass Sie eine aktuelle Sicherung haben, bevor Sie versuchen, ein Zurückrollen durchzuführen.
Fehlerbehebung bei Ihrer Wiederherstellung / Rollback
Wenn die Anwendung nicht startet oder Ihre Daten nach einer Wiederherstellung oder einem Rollback nicht angezeigt werden, prüfen Sie die folgenden häufigen Probleme:
1. Dateiberechtigungen (Linux/Podman)
Wenn Sie die Datei als root-Benutzer wiederhergestellt haben, hat die Anwendung im Container möglicherweise keine Berechtigung, sie zu lesen oder zu schreiben.
- Das Symptom: Protokolle zeigen "Permission Denied" oder "Read-only database" ein.
- Die Lösung: Setzen Sie die Berechtigungen von der Datei im Container 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 speziell nach einer Datei mit dem Namen backups.db.
- Das Symptom: Die Anwendung startet, sieht aber „leer" aus (wie eine Neuinstallation).
- Die Lösung: Prüfen Sie das Verzeichnis
/app/data/. Wenn Ihre Dateiduplistatus-backup-2024.dbheißt oder die Erweiterung.sqlitehat, wird die App sie ignorieren. Verwenden Sie den Befehlmvoder die Docker Desktop GUI, um sie exakt inbackups.dbumzubenennen.
3. Container nicht neu gestartet
Auf einigen Systemen kann die Verwendung von docker cp während der Ausführung des Containers die Verbindung der Anwendung zur Datenbank möglicherweise nicht sofort "aktualisieren".
- Die Lösung: Führen Sie nach einer Wiederherstellung immer einen vollständigen Neustart durch:
docker restart duplistatus
4. Datenbankversion-Nichtübereinstimmung
Wenn Sie eine Sicherung aus einer viel neueren Version von duplistatus in einer älteren Version der App wiederherstellen, könnte das Datenbankschema inkompatibel sein.
- Die Lösung: Stellen Sie immer sicher, dass Sie die gleiche (oder eine neuere) Version des duplistatus-Images ausführen wie diejenige, die die Sicherung erstellt hat. Prüfen Sie Ihre Version mit:
docker inspect duplistatus --format '{{.Config.Image}}'
Datenbankschema-Versionen
| Anwendungsversion | Schema-Version | Wichtigste Änderungen |
|---|---|---|
| 0.6.x und früher | v1.0 | Initiales Schema |
| 0.7.x | v2.0, v3.0 | Konfigurationen hinzugefügt, machines → 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
- Dokumentation: Benutzerhandbuch
- API-Referenz: API-Dokumentation
- API-Änderungen: Rückwärts inkompatible API-Änderungen
- Versionshinweise: Prüfen Sie versionsspezifische Versionshinweise auf detaillierte Änderungen
- Community: GitHub Discussions
- Probleme: GitHub Issues