Today I updated my self install of Nextcloud from version 22.2.3 to 23.0.0 and after the update I visited the status (Settings->Overview) page in order to see if there are any pending issues and saw the following warning:
The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running "occ db:add-missing-indices" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster.
Missing index "fs_id_storage_size" in table "oc_filecache".
Missing index "fs_storage_path_prefix" in table "oc_filecache".
Please double check the installation guides, and check for any errors or warnings in the log.
Check the security of your Nextcloud over our security scan
The error indicates that I can simply run “occ db:add-missing-indices” at the command line and the error should be resolved so I navigated to the occ
directory and issued the command “sudo -u www-data php occ db:add-missing-indices
” but received another error instead:
An unhandled exception has been thrown:
OCP\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)
Some research led to this github issue which suggested adding apc.enable_cli = 1
to the file apcu.ini
located in /etc/php/7.4/mods-available
(please note that your version of php may be different) which turns out, it solved the issue allowing me to successfully run sudo -u www-data php occ db:add-missing-indices
again.
I now have a clean status page!
I’m glad I found this page. I got the
Missing index “fs_id_storage_size” in table “oc_filecache”.
Missing index “fs_storage_path_prefix” in table “oc_filecache”.
and one other after I upgraded to 20.0.10. Then I upgraded to 24.0.6 and they were still there.
I added apc.enable_cli = 1 to apcu.ini
and ran sudo php /var/www/nextcloud-server/occ db:add-missing-indices which fixed everything for me. (nextcloud-server being my server)
I don’t know why Nextcloud don’t see this happening.