ownCloud docker update from 9 to 10 DriverException error


#1

Steps to reproduce

  1. ownCloud (docker version 9.1.7) stopped with docker-compose down, edited .env to owncloud 10.0.2 and started with docker compose up -d
  2. Waiting until containers started. After container health is ok, open browser and it shows owncloud in maintenance mode.
  3. Disable maintenance mode in terminal and browser show message "Update needed
    Please use the command line updater because you have a big instance."
  4. Trying update manual ./occ upgrade appear an error

You may use your browser or the occ upgrade command to do the upgrade
Set log level to debug
Turned on maintenance mode
Doctrine\DBAL\Exception\DriverException: An exception occurred while executing 'ALTER TABLE `oc_activity` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;':

SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
Update failed
Maintenance mode is kept active
Reset log level

Expected behaviour

ownCloud after container is started should run normally

Server configuration

Ubuntu 16.04:

ownCloud version: 10.0.2 dockerized

Updated from an older ownCloud: 9.1.7


#2

I did the following search https://github.com/owncloud/core/search?q=%221118+Row+size+too+large%22&type=Issues and found https://github.com/owncloud/core/issues/27755


#3

Solution from GitHub

sudo -u www-data ./occ config:system:set mysql.utf8mb4 --type boolean --value="false"
sudo -u www-data ./occ upgrade
sudo -u www-data ./occ config:system:set mysql.utf8mb4 --type boolean --value="true"
sudo -u www-data ./occ db:convert-mysql-charset
sudo -u www-data ./occ maintenance:mode --off

doesn't work for me.
Any suggestion ?