通过对升级程序跟踪后,发现升级程序在某些特殊情况下(尤其曾有过服务器迁移,特别是通过非discuz内部程序进行数据备份和恢复的情况为最典型)存在BUG,并成功解决。
“USING BTREE”,通过非DZ程序导出数据时,会在主键和索引后面加上这个语法,但最新的安装程序的建表脚本里并没有这个语法,导致系统升级时认为主键不一致,所以需要改表名,再重新建表。然鹅,官方升级程序在改表名这种升级方式时,忽略了几个问题!导到升级不成功!
同时,官方升级程序通过改表的方式升级也是存在极大的漏洞:
一、只干了改表的事和新建表的事,改完表后,原来不存在了,但程序里却在对该表(已确认就上上述的两张表)进行查询操作,所以会报“表不存在”的错误,导致升级程序终止,不能继续升级;
二,完成后改表及建表操作后(即便像前面我的操作一样,手动把那两张表建好以后),升级程序并没有将旧表数据写入新表,最终导致没有数据!
解决办法:
确认自己的程序是3.2及以后的版本的情况下,注释掉升级程序改表操作的代码即可(此种办法只是权宜之计,快速处理升级问题)
discuz教程
discuz升级注意事项分享
我的站长站
2019-05-18
共人阅读
下一篇:discuz开启纵横搜索后报错
最新更新
-
Discuz模板和插件重新安装方法
有很多小朋友遇到Discuz搬家或重装时,购买的模板和插件不能重新安装。在这里我叫大家一个方法,让大家的模板和...
-
discuz地区数据设置方法
discuz后台可以直接设置地区数据,管理员可以自己编辑地区数据、根据所在地区的不同,增加、删除和修改地区名称...
-
discuz站长推荐设置方法
推荐功能介绍站长推荐将以浮窗的形式显示在帖子内容页面右下角。您可以手动添加一些指定的主题,或者选择一些...
-
discuz后台计划任务不运行解决方法
解决办法一直接删除内置的计划任务,如果删除不了的话,打开数据库删除pre_common_cron表这个计划任务,或者将后...
-
discuz群组附件管理方法
使用教程首先登陆我们的网站后台!后台的默认地址是:http://你的域名/admin.php内容>>群组附件管理只根据相关...