Temporarily disable read-only compressed row in MariaDB:
SET GLOBAL innodb_read_only_compressed=OFF;
Then patch the Nextcloud files manually and start upgrade from inside the container:
$ kubectl -n nextcloud exec statefulset/nextcloud -- /bin/bash
# rsync -rlDog --chown www-data:root --delete --exclude-from=/upgrade.exclude /usr/src/nextcloud/ /var/www/html/
# rsync -rlDog --chown www-data:root --include '/version.php' --exclude '/*' /usr/src/nextcloud/ /var/www/html/
# su - www-data -s /bin/bash -c 'php -d memory_limit=-1 /var/www/html/occ -vvv upgrade
To eventually fix this problem, we need to update row type from COMPRESSED
to DYNAMIC
on all tables. In MariaDB:
SELECT CONCAT('ALTER TABLE `', table_name, '` ROW_FORMAT=DYNAMIC;') AS aQuery FROM information_schema.tables WHERE table_schema = 'nextcloud'
Then execute the output as commands.
Nextcloud might add support for MariaDB 10.6 and fix this issue in later version of 23.