Scripts 学盟

标题: Discuz! 7.2 升到 x2.0 版本后附件表没有记录的问题 [打印本页]

作者: 混混@普宁.中国    时间: 2011-5-27 00:52:00     标题: Discuz! 7.2 升到 x2.0 版本后附件表没有记录的问题

学盟论坛是从 discuz 7.2 升级到 X2 RC 再升级到 X2 正式版的。。。其它方式升级是否有同样问题,不清楚。

刚开始升级完,也没有发现什么问题。。。

但是前天突然发现,一些旧帖中出现匿名回复,并且无法编辑,无法删除。

这就奇怪了。。。论坛一直是禁止匿名帖,怎么会有这情况。

打开数据库看,发现表里明明没有匿名帖的记录啊。。。怎么会出现这种情况。

马上在把数据下到本地跟踪一下。。。

最后发现问题还是出在数据库上,附件表:pre_forum_attachment 表里没有旧帖附件的记录!只有新帖附件的记录

再查看 pre_forum_attachment_0, pre_forum_attachment_1, ... pre_forum_attachment_9

幸好,分表中保留有旧帖附件的记录,谢天谢地啊。。。要是没有的话,可得慢慢折腾了。。。

------------------

一看,升级后,新帖中上传的附件不多,

马上手动把 pre_forum_attachment 中新附件记录的 aid 分别改成足够大的数字 (要比所有旧帖子附件的 aid 大),并且到各个分表中对应的记录也同步修改 aid

------------------

编写如下 SQL 语句到数据库中执行
  1. DELETE FROM `dx2r_forum_attachment`;

  2. INSERT INTO `dx2r_forum_attachment`
  3. SELECT *
  4. FROM (
  5.         SELECT `aid`, `tid`, `pid`, `uid`, 0 AS `tableid`, 0 AS `downloads` FROM `dx2r_forum_attachment_0`
  6.         UNION ALL
  7.         SELECT `aid`, `tid`, `pid`, `uid`, 1 AS `tableid`, 0 AS `downloads` FROM `dx2r_forum_attachment_1`
  8.         UNION ALL
  9.         SELECT `aid`, `tid`, `pid`, `uid`, 2 AS `tableid`, 0 AS `downloads` FROM `dx2r_forum_attachment_2`
  10.         UNION ALL
  11.         SELECT `aid`, `tid`, `pid`, `uid`, 3 AS `tableid`, 0 AS `downloads` FROM `dx2r_forum_attachment_3`
  12.         UNION ALL
  13.         SELECT `aid`, `tid`, `pid`, `uid`, 4 AS `tableid`, 0 AS `downloads` FROM `dx2r_forum_attachment_4`
  14.         UNION ALL
  15.         SELECT `aid`, `tid`, `pid`, `uid`, 5 AS `tableid`, 0 AS `downloads` FROM `dx2r_forum_attachment_5`
  16.         UNION ALL
  17.         SELECT `aid`, `tid`, `pid`, `uid`, 6 AS `tableid`, 0 AS `downloads` FROM `dx2r_forum_attachment_6`
  18.         UNION ALL
  19.         SELECT `aid`, `tid`, `pid`, `uid`, 7 AS `tableid`, 0 AS `downloads` FROM `dx2r_forum_attachment_7`
  20.         UNION ALL
  21.         SELECT `aid`, `tid`, `pid`, `uid`, 8 AS `tableid`, 0 AS `downloads` FROM `dx2r_forum_attachment_8`
  22.         UNION ALL
  23.         SELECT `aid`, `tid`, `pid`, `uid`, 9 AS `tableid`, 0 AS `downloads` FROM `dx2r_forum_attachment_9`
  24. ) AS `t`
  25. ORDER BY `aid`;
复制代码
------------------
马上在本地测试一下,一切正常。




到服务器上做同样操作
------------------

其实,这个问题还有一个症状就是,旧帖子中的附件无法下载。

如果有网友也遇到同样的问题,可以参考参考哈。。。。

------------------
但是注意啊!!!对文件,对程序或者对数据库更改前,请先备份!操作时请关闭站点!
作者: 酒之小轻    时间: 2012-3-23 21:25:34

好贴,辛苦了,还好我用的是55,一直舍不得升级,呵呵




欢迎光临 Scripts 学盟 (http://www.iscripts.org/) Powered by Discuz! X2