Nextcloud 17升级到18的InvalidFieldNameException错误解决方案

以前升级都粗暴使用人工覆盖安装的。原因是每次在后台点击升级,都在在下载时中断。这次从17.02升级到18.04,意外地在后台下载成功,但遇到以下错误:

An exception occurred while executing 'UPDATE `oc_flow_operations` SET `ent
  ity` = ? WHERE `entity` = ''' with params ["OCA\\WorkflowEngine\\Entity\\Fi
  le"]:

  SQLSTATE[42S22]: Column not found: 1054 Unknown column 'entity' in 'where c
  lause'

在国内使用Nextcloud的还是不多,只能求助Google,在官方github上找到的答案。

原因就是在oc_flow_operations 表内少一个 entity 字段。升级此字段可以使用phpmyadmin下进行,更快的可以直接在SSH下进行,命令如下:

//进入 ssh

ssh <IP-Adress> -l root

//登陆数据库

mysql -uroot -p (use PW of user root)

//打开数据表:

connect nextcloud

//检查表格oc_flow_operations, 确认字段entity是否存在

describe oc_flow_operations;

 

Oc Flow Operations
Oc Flow Operations

//如果不存在,使用以下命令增加entity字段

alter table oc_flow_operations add entity varchar(256) default NULL;

 

Oc Flow Operations Add Entity
Oc Flow Operations Add Entity

增加完成后,就可以返回原来继续升级。

sudo -u www php /home/wwwroot/default/occ
sudo -u www php /home/wwwroot/default/occ  maintenance:mode --off

 

« 按需要生成图片缩略图(更新) 按需要生成图片缩略图(第二次更新) »

Say Something!

Leave a Reply