Occ db:add-missing-columns - Security and Speed Optimize at NextcloudPi Docker

Hello I have a NextcloudPi Setup in Docker.
The Cloud is working fine, but at the security Scan, I get Several Problems.

“There are some warnings regarding your setup.
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 “properties_path_index” in table “oc_properties”.
The database is missing some optional columns. Due to the fact that adding columns on big tables could take some time they were not added automatically when they can be optional. By running “occ db:add-missing-columns” those missing columns could be added manually while the instance keeps running. Once the columns are added some features might improve responsiveness or usability.
Missing optional column “reference_id” in table “oc_comments”.
This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them.
bcmath
imagick”

That are my security Issues. I tried a lot of Commands to optimize the table, but it won’t work.

My Docker Setup:
Client:
Version: 19.03.11
API version: 1.40
Go version: go1.13.12
Git commit: dd360c7
Built: Mon Jun 8 20:23:26 2020
OS/Arch: linux/amd64
Experimental: false

Server:
Engine:
Version: 19.03.11
API version: 1.40 (minimum version 1.12)
Go version: go1.13.12
Git commit: 77e06fd
Built: Mon Jun 8 20:24:59 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.13
GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
Version: 1.0.0-rc10
GitCommit:
docker-init:
Version: 0.18.0
GitCommit: fec3683

I hope there are some people who have the same problems :slight_smile:
Thanks for your help!

Did you try to run the actual occ commands that are suggested in the error message?

Hi, that is my error code:

` /media/Speicher/ncdata/_data/nextcloud# occ db:add-missing-columns

Command ‘occ’ not found, but there are 21 similar ones. `

or is the occ data in another folder ?

occ is a php script that is inside the main Nextlcoud folder. You might have to add ./ to run it when you are in the main folder, so ./occ db:add-missing-columns.

hi, the Command Line just gives me a command not found out. I tried it in my /nextcloud folder. Thanks for your help!

Then change into the folder where the occ script is located.

Hi, I changed to the folder and tried the following command:

sudo -u www-data php  occ db:add-missing-primary-keys

An unhandled exception has been thrown:
Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occ urred in driver: could not find driver in /media/Speicher/ncdata/_data/nextcloud /lib/private/DB/Connection.php:72
Stack trace:
#0 /media/Speicher/ncdata/_data/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DB AL/Connection.php(1449): OC\DB\Connection->connect()
#1 /media/Speicher/ncdata/_data/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DB AL/Connection.php(892): Doctrine\DBAL\Connection->getWrappedConnection()
#2 /media/Speicher/ncdata/_data/nextcloud/lib/private/DB/Connection.php(202): Do ctrine\DBAL\Connection->executeQuery()
#3 /media/Speicher/ncdata/_data/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DB AL/Query/QueryBuilder.php(206): OC\DB\Connection->executeQuery()
#4 /media/Speicher/ncdata/_data/nextcloud/lib/private/DB/QueryBuilder/QueryBuild er.php(217): Doctrine\DBAL\Query\QueryBuilder->execute()
#5 /media/Speicher/ncdata/_data/nextcloud/lib/private/AppConfig.php(345): OC\DB\ QueryBuilder\QueryBuilder->execute()
#6 /media/Speicher/ncdata/_data/nextcloud/lib/private/AppConfig.php(110): OC\App Config->loadConfigValues()
#7 /media/Speicher/ncdata/_data/nextcloud/lib/private/AppConfig.php(301): OC\App Config->getApps()
#8 /media/Speicher/ncdata/_data/nextcloud/lib/private/legacy/OC_App.php(949): OC \AppConfig->getValues()
#9 /media/Speicher/ncdata/_data/nextcloud/lib/private/Server.php(668): OC_App::g etAppVersions()
#10 /media/Speicher/ncdata/_data/nextcloud/lib/private/AppFramework/Utility/Simp leContainer.php(155): OC\Server->OC{closure}()
#11 /media/Speicher/ncdata/_data/nextcloud/3rdparty/pimple/pimple/src/Pimple/Con tainer.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utilit y{closure}()
#12 /media/Speicher/ncdata/_data/nextcloud/lib/private/AppFramework/Utility/Simp leContainer.php(122): Pimple\Container->offsetGet()
#13 /media/Speicher/ncdata/_data/nextcloud/lib/private/ServerContainer.php(156): OC\AppFramework\Utility\SimpleContainer->query()
#14 /media/Speicher/ncdata/_data/nextcloud/lib/private/Server.php(1677): OC\Serv erContainer->query()
#15 /media/Speicher/ncdata/_data/nextcloud/lib/private/Server.php(1017): OC\Serv er->getMemCacheFactory()
#16 /media/Speicher/ncdata/_data/nextcloud/lib/private/AppFramework/Utility/Simp leContainer.php(155): OC\Server->OC{closure}()
#17 /media/Speicher/ncdata/_data/nextcloud/3rdparty/pimple/pimple/src/Pimple/Con tainer.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utilit y{closure}()
#18 /media/Speicher/ncdata/_data/nextcloud/lib/private/AppFramework/Utility/Simp leContainer.php(122): Pimple\Container->offsetGet()
#19 /media/Speicher/ncdata/_data/nextcloud/lib/private/ServerContainer.php(156): OC\AppFramework\Utility\SimpleContainer->query()
#20 /media/Speicher/ncdata/_data/nextcloud/lib/private/Server.php(1977): OC\Serv erContainer->query()
#21 /media/Speicher/ncdata/_data/nextcloud/lib/private/Files/View.php(118): OC\S erver->getLockingProvider()
#22 /media/Speicher/ncdata/_data/nextcloud/lib/private/Server.php(395): OC\Files \View->__construct()
#23 /media/Speicher/ncdata/_data/nextcloud/lib/private/AppFramework/Utility/Simp leContainer.php(155): OC\Server->OC{closure}()
#24 /media/Speicher/ncdata/_data/nextcloud/3rdparty/pimple/pimple/src/Pimple/Con tainer.php(118): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utilit y{closure}()
#25 /media/Speicher/ncdata/_data/nextcloud/lib/private/AppFramework/Utility/Simp leContainer.php(122): Pimple\Container->offsetGet()
#26 /media/Speicher/ncdata/_data/nextcloud/lib/private/ServerContainer.php(156): OC\AppFramework\Utility\SimpleContainer->query()
#27 /media/Speicher/ncdata/_data/nextcloud/lib/private/Server.php(1324): OC\Serv erContainer->query()
#28 /media/Speicher/ncdata/_data/nextcloud/lib/base.php(595): OC\Server->boot()
#29 /media/Speicher/ncdata/_data/nextcloud/lib/base.php(1091): OC::init()
#30 /media/Speicher/ncdata/_data/nextcloud/console.php(49): require_once(’/media /Speicher…’)
#31 /media/Speicher/ncdata/_data/nextcloud/occ(11): require_once(’/media/Speiche r…’)

That’s my error. I think now you can undertand my problem much better.
Thanks