Ubuntu 20.04.1 LTS PHP 7.4.12 MariaDB 10.3.25 Nextcloud 20.0.2 RC1 对于Nextcloud的升级一向比较激进,更新频道选择“Beta测试版”,今天升级到Nextcloud 20.0.2 RC1,升级完毕后,安全与设置警告页面中提示如下图,大概意思是某些数据库的主键值掉失,一般情况下Nextcloud会明确给出解决办法,这里提示运行“occ db:add-missing-primary-keys”命令重新添加主键值。 ssh登录Nextcloud服务器,进入Nextcloud的web目录,按提示运行如下命令。 奇怪的事情来了,提示db:add-missing-primary-keys命令没有定义,只有下图所提示的5个db命令。没有定义,你叫运行是几个意思呢? 列出 occ的所有命令看看。 找到db部分,确实只有提示的5个命令。 不服,进入Nextcloud的core/Command/Db目录查看,AddMissingPrimaryKeys.php文件赫然在列,怎么回事呢?命令跑哪去了? 带着疑问一个个目录查找,看能不能找出问题。在core目录下发现一个register_command.php文件,注册命令?难道是这里?打开文件查看。 找到与db命令相关的代码项,唯独就是缺少AddMissingPrimaryKeys。 那好吧,没有就自己添加吧,插入如下代码。 保存并退出,再次查看occ命令列表,命令回来了。 运行修复命令。 终于正常运行了,等待修复完毕。 刷新安全与设置警告页面,错误提示消失,成功修复。