Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 3.2升级至3.4git失败,何解

[复制链接]
leixuok 发表于 2019-4-21 15:04:27 | 显示全部楼层 |阅读模式
从3。2升级至3。4版本,3。4版本是从Discuz! X 官方 Git (https://gitee.com/ComsenzDiscuz/DiscuzX)下载回来的。升级过程中间提示两个表不存在(common_setting,common_syscache),手动把这两个表建好,第三阶段提示common_member 表没有realname字段,手动添加该字段后,提示完成正常升级完成。
完成后发现没有任何数据,所有表内均无数据(空表),原有的旧表(加了_bak后缀)也继续存在。
在不同环境下,升级了两次都是相同的情况,请大虾们指点指点。
谢谢

crx349 发表于 2019-4-21 16:15:09 | 显示全部楼层
问下你是新装把 升级不会动到 setting和syscache表
回复

使用道具 举报

 楼主| leixuok 发表于 2019-4-22 11:30:20 | 显示全部楼层
本帖最后由 leixuok 于 2019-4-22 11:42 编辑

感谢@crx349同学的回复及QQ上的交流,最终通过对升级程序跟踪后,发现升级程序在某些特殊情况下(尤其曾有过服务器迁移,特别是通过非discuz内部程序进行数据备份和恢复的情况为最典型)存在BUG,并成功解决。
“USING BTREE”,通过非DZ程序导出数据时,会在主键和索引后面加上这个语法,但最新的安装程序的建表脚本里并没有这个语法,导致系统升级时认为主键不一致,所以需要改表名,再重新建表。然鹅,官方升级程序在改表名这种升级方式时,忽略了几个问题!导到升级不成功!

同时,官方升级程序通过改表的方式升级也是存在极大的漏洞:
一、只干了改表的事和新建表的事,改完表后,原来不存在了,但程序里却在对该表(已确认就上上述的两张表)进行查询操作,所以会报“表不存在”的错误,导致升级程序终止,不能继续升级;

二,完成后改表及建表操作后(即便像前面我的操作一样,手动把那两张表建好以后),升级程序并没有将旧表数据写入新表,最终导致没有数据!
解决办法:
确认自己的程序是3.2及以后的版本的情况下,注释掉升级程序改表操作的代码即可(此种办法只是权宜之计,快速处理升级问题)

后续拟通过修改程序,对“USING BTREE”做出判断。就比较完美了!




以上,有对不对的,欢迎指出、纠正。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

crx349 发表于 2019-4-22 12:20:40 | 显示全部楼层
leixuok 发表于 2019-4-22 11:30
感谢@crx349同学的回复及QQ上的交流,最终通过对升级程序跟踪后,发现升级程序在某些特殊情况下(尤其曾有 ...

解决就好 迁移 尽量用后台备份
回复

使用道具 举报

hanxing558 发表于 2020-2-1 20:51:44 | 显示全部楼层
升级:
Discuz! 程序  X3.2、X3.3
1)备份数据库
2)建立文件夹 old,旧程序除了 data ,  config, uc_client, uc_server 目录以外的程序移动进入 old 目录中
3)上传 X3.4 程序(压缩包中 upload 目录中的文件), 如上传时候提示覆盖目录,请选择“是”

3.2-3.4的升级只是需要覆盖就好了,不需要执行update啊?这是官方写的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-25 07:36 , Processed in 0.022381 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表