Nextcloud 31 (Hub 10): So behebst du das Zeilenformat-Problem
Beim Update auf Nextcloud 31 (Hub 10) tauchte plötzlich eine Fehlermeldung auf, dass das Zeilenformat in der Datenbank nicht optimal ist. Über phpMyAdmin ist das schnell gelöst – wie ich hier festgehalten habe.
Beim Update auf Nextcloud 31 – auch bekannt als Hub 10 – kann es vorkommen, dass folgende Fehlermeldung erscheint:
Mit dem aktuellen Update wird das empfohlene Zeilenformat der Datenbanktabellen von COMPRESSED zu DYNAMIC geändert. Da aktuell keine automatische Konvertierung angeboten wird, muss dies händisch durchgeführt werden.
Hintergrund
Nextcloud 31 (Hub 10) bringt diverse Neuerungen mit sich, aber auch Änderungen an der Datenbankarchitektur.
Nach dem Update wird in der Prüfung, die in den Verwaltungseinstellungen angezeigt wird, nun auch kontrolliert, obdie Tabellen das optimale ROW_FORMAT=DYNAMIC besitzen. Wird dies nicht festgestellt, erscheint die oben genannte Fehlermeldung.
Aktuell gibt es für dieses Problem keinen automatisierten Fix – daher ist ein manueller Workaround notwendig.
Der Workaround: Manuelle Aktualisierung über phpMyAdmin
Da die direkte Ausführung von Shell-Skripten in Docker-Umgebungen aufgrund von Passwortabfragen problematisch sein kann, bietet sich die Nutzung von phpMyAdmin als komfortable Alternative an. Mit phpMyAdmin lässt sich der Workaround in zwei einfachen Schritten umsetzen:
Backup:
Erstelle vor diesen Änderungen unbedingt ein vollständiges Backup deiner Datenbank. So kannst du im Notfall problemlos den alten Zustand wiederherstellen.
Testumgebung:
Falls möglich, teste den Workaround zuerst in einer Test- oder Staging-Umgebung, um unvorhergesehene Probleme zu vermeiden.
Überprüfung:
Nach der Ausführung der Befehle solltest du in der Nextcloud-Oberfläche prüfen, ob die Fehlermeldung verschwunden ist und alles ordnungsgemäß funktioniert.
Schritt 1: Generiere die ALTER TABLE-Befehle
- Einloggen:
Melde dich in phpMyAdmin an und wähle die betroffene Datenbank aus. - SQL-Abfrage ausführen:
Wechsle in den Reiter „SQL“ und führe folgende Abfrage aus:
SELECT CONCAT(
'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' ROW_FORMAT=DYNAMIC;'
) AS alter_command
FROM INFORMATION_SCHEMA.TABLES
WHERE ENGINE='InnoDB' AND ROW_FORMAT <> 'DYNAMIC';
Diese Abfrage generiert für jede betroffene Tabelle einen entsprechenden ALTER TABLE-Befehl, um das Zeilenformat auf DYNAMIC umzustellen.
- Ergebnis kopieren:
Kopiere die generierten Befehle aus dem Ergebnisfenster in ein Textdokument oder in deine Zwischenablage.
Schritt 2: Führe die ALTER TABLE-Befehle aus
- Befehle einfügen:
Gehe erneut in den Reiter „SQL“ in phpMyAdmin und füge alle kopierten ALTER TABLE-Befehle in das Eingabefeld ein. - Befehle ausführen:
Klicke auf „Los“ oder „Ausführen“, um die Befehle abzuschicken. Damit wird das Zeilenformat aller betroffenen Tabellen auf DYNAMIC umgestellt.
Happy Hosting und viel Erfolg beim Update! 😊
Kommentare gerne unter folgendem Post: