Fehler bei Wekan-Upgrade mit MongoDB 7.0   Vor kurzem aktualisiert!


Wekan Snap-Upgrade-Fehler

Wer Wekan als Snap unter Ubuntu oder Debian betreibt, schätzt die Wartungsarmut. Doch die automatischen Snap-Updates haben eine tückische Falle: Bei einem der großen Wekan-Updates wird im Hintergrund die integrierte MongoDB von Version 5.x/6.x auf Version 7.0 aktualisiert.

KI generiertes Bild: Wekan-Update mit MongoDB 7
KI generiertes Bild: Wekan-Update mit MongoDB 7

Das Problem: MongoDB kann ältere Datenbankformate nicht einfach „on-the-fly“ starten. Die Folge? Der Wekan-Dienst stürzt ab, startet unendlich neu und im Log findet sich die Fehlermeldung, dass die WiredTiger-Datenbankdateien inkompatibel sind.

In dieser Anleitung wird Schritt für Schritt gezeigt, wie man die Wekan-Daten rettet, die inkompatible Datenbank sauber zurücksetzt und das Backup erfolgreich wieder einspielt – ohne hochgeladene Dateianhänge zu verlieren.

Das Problem: Warum startet Wekan nicht mehr?

Durch das automatische Snap-Update versucht die neue MongoDB-Version, das alte Datenverzeichnis unter /var/snap/wekan/common/ zu lesen. Da MongoDB keine direkten Versionssprünge über mehrere Major-Versionen hinweg im selben Datenverzeichnis erlaubt, bricht der Start ab.

Die Lösung ist ein Dump & Restore:

  1. Man sichert die bestehende Datenbank (solange der alte Zustand noch lesbar ist bzw. über die Snap-Tools).
  2. Man leert die inkompatiblen Datenbankdateien (Vorsicht bei Anhängen!).
  3. Man lässt MongoDB 7.0 eine frische, leere Datenbankstruktur anlegen.
  4. Man spielt das Backup in die neue Datenbank ein.

Schritt-für-Schritt-Anleitung zur Rettung

Schritt 1: Ein aktuelles Backup erstellen

Zuerst muss der aktuelle Zustand der Datenbank gesichert werden. Da Wekan eventuell nicht läuft, nutzt man das integrierte Backup-Tool des Snaps:

sudo wekan.database-backup

Das Backup wird im Verzeichnis /var/snap/wekan/common/db-backups/ abgelegt (z. B. mit dem Namen wekan-20260716T102638.backup).

Schritt 2: Das Backup an einen sicheren Ort kopieren

Um zu verhindern, dass das Backup bei den folgenden Schritten versehentlich gelöscht wird, kopiert man es temporär an einen sicheren Ort außerhalb des Snap-Verzeichnisses:

cp /var/snap/wekan/common/db-backups/wekan-*.backup /tmp/wekan_safe_backup.backup

Schritt 3: Sicherstellen, dass Wekan auf dem neuesten Stand ist

Falls noch nicht geschehen, führt man das Snap-Upgrade vollständig aus:

sudo snap refresh wekan

Schritt 4: Die inkompatiblen DB-Dateien gezielt löschen

Jetzt wird es filigran. Bei vielen Wekan-Installationen liegen die .wt-Datenbankdateien direkt im gemeinsamen Ordner /var/snap/wekan/common/. Achtung: Hier liegen auch das Caddyfile sowie der Ordner files/ mit allen hochgeladenen Board-Anhängen!

Man stoppt die Dienste und löscht nur die MongoDB-Systemdateien:

# 1. Wekan-Dienste stoppen
sudo snap stop wekan

# 2. In das Wekan-Verzeichnis wechseln
cd /var/snap/wekan/common/

# 3. Nur die MongoDB-Verzeichnisse und Logdateien löschen
sudo rm -rf journal/ diagnostic.data/
sudo rm -f *.wt *.turtle *.lock *.bson mongodb.log .replica_set_initialized

# 4. Wekan wieder starten (MongoDB 7.0 startet nun jungfräulich und fehlerfrei)
sudo snap start wekan

Schritt 5: Das Backup für den Import vorbereiten (Snap-Sandbox beachten!)

Hier stolpern die meisten Admins: Snaps laufen in einer strengen Sicherheits-Sandbox. Wenn man versucht, das Backup direkt aus /tmp/ oder /root/ zu importieren, bricht das Tool mit einem permission denied oder no such file or directory ab. Das Snap darf schlicht nicht auf diese Systemordner zugreifen.

Man verschiebt das Backup daher direkt in den Wekan-Sicherheitskontext und vergibt passende Rechte:

# Backup in den Wekan-Ordner verschieben
sudo mv /tmp/wekan_safe_backup.backup /var/snap/wekan/common/restore_me.backup

# Dateirechte für den Snap-Dienst freigeben
sudo chmod 666 /var/snap/wekan/common/restore_me.backup

Schritt 6: Backup in MongoDB 7.0 einspielen

Jetzt führt man den Restore-Befehl aus. Da die Datei nun im Wekan-eigenen Verzeichnis liegt, klappt der Zugriff problemlos:

sudo wekan.database-restore /var/snap/wekan/common/restore_me.backup

Am Ende des Vorgangs sollte eine Erfolgsmeldung mit der Anzahl der wiederhergestellten Dokumente zu sehen sein (z. B. X document(s) restored successfully).

Schritt 7: Aufräumen

Sobald Wekan wieder läuft und man im Browser geprüft hat, dass alle Boards, Karten und Anhänge wieder da sind, löscht man die temporäre Restore-Datei:

sudo rm /var/snap/wekan/common/restore_me.backup

Automatische Updates sind ein Segen, können aber bei Major-Sprüngen von Datenbanken wie MongoDB zu unvorhergesehenen Ausfällen führen. Mit der „Sichern, Löschen, Wiederherstellen“-Methode unter Berücksichtigung der Snap-Sandbox-Rechte ist das Wekan-Board in weniger als 10 Minuten wieder online.