Anyshare-升级失败,提示错误:Column count doesn't match value count at row 1
关键字
升级脚本
适用产品
- Anyshare 5.0.31
问题描述
在 5.0.31 同机升级至 6.0.6 的恢复过程中,restore.py 执行失败,并提示如下错误信息:
“Column count doesn't match value count at row 1”
问题影响
无法完成升级数据恢复。
问题原因
通过详细日志排查,发现错误信息提示数据库字段无法找到:

对比 Anyshare 5.0和 Anyshare 6.0的数据库发现数据库字段没有升级修改,判断为相关的脚本没有执行:

检查脚本目录发现在备份后压缩了的相关子目录,解压后重新加了一层目录,导致相对路径发生变化,一些脚本没有执行。

解决方案
方案一,重新安装操作系统然后恢复 upgrade 目录为正常的脚本目录结构,再执行恢复,这是最稳当和推荐的做法。
方案二,如果有其他困难导致无法重装,则直接调整 upgrade 目录为正常的脚本目录结构后,重新执行恢复脚本。
更多信息
upgrade 升级目录下的 restore_by_step 在执行过 restore.py 之后会生成 cache.json 文件,记录哪些步骤已经执行ok,哪些步骤执行 failed ,在查明原因后可以重新执行 restore_by_step 下的 python 文件继续进行升级恢复操作。