discuz提供的
转换程序真是滥的可以,而我自己也懒得完全自己去写,只好用他们的程序,然后出了问题自己来修补,不过还好,已经修复了3个问题,还有几个,在其他的帖子中已经提及。
木铎校园 BBS 社区&@|I&p1}KG#`6^4dI(VI4qk#C0修复的3个分别是:
木铎校园 BBS 社区ChFS(r1,
木铎杂谈 分区 的版块下面所有的子版块不能够正常显示,其实是数据库中分区(group)的fup值应该同 fid(forumid),而转换程序在转换分区的时候没有做此检测,而是直接根据bmf的fup转换,造成了论坛树形结构的混乱。
木铎校园 BBS 社区oC3[4D
mPX+^^2,ss及xs的数据由utf-8到gbk的转换,我自己写的程序,偷懒了,写得不完全,但是已经能用了,对于目前的站点基本上实现了完全转换,并且尚未带来什么错误。
|!V0@n uKN@E03,bmf的fid(forumid)数值可能为6位数字,如“1065109602”,而discuz的fid只支持3位数字(smallint(6),为小于999的整数),并且转换程序相当愚蠢的substr了后3位(根本不考虑版块id会重复的情况);这还不说,转换论坛数据的时候,将论坛的’fid‘ cut为后3位,但是在转换论坛帖子记录的时候,inster 语句中索引的 fid居然为 bmf库中原有的forumid。 这两个错误,导致了论坛10个版块左右的数据没有转换。
木铎校园 BBS 社区XiD)BW0DsX{1No木铎校园 BBS 社区QO"\6d8j,SW9C木铎校园 BBS 社区QH$Kz:G
^D"q%SH下面还有一些全库的错误,数据量较大,需要仔细研究算法,争取尽快解决。
5L Z)\\RR0`~,?0mysql> SELECT count(*) FROM xxxxxx.cdb_posts where authorid=0;
L@qI1gd7P0+----------+
木铎校园 BBS 社区U*I9|3@Dpzu| count(*) |
$]ev4_6i4Qu{R:xec.q0+----------+
木铎校园 BBS 社区+[#`h
B._| 48571 |
v9XGoc,?5Wi0+----------+
ZF!q,Ty"}2L01 row in set (0.07 sec)
5|q.f&O"j#Re$r0mysql> SELECT count(*) FROM xxxxxx_gbk.cdb_threads where authorid=0;
木铎校园 BBS 社区NbZ7bC4[5SFB+----------+
W!Hl o,L.vD9X0| count(*) |
*H
[Z!YRs5W/qJy0+----------+
木铎校园 BBS 社区1`f|qA| 100824 |
木铎校园 BBS 社区or.u7c8Jn.K)Z,F+----------+
"Q)J7v
V p9L%C.u%Y01 row in set (0.17 sec)
YGgUr,q7VO'|0木铎校园 BBS 社区 \S4c0L7s
oGf也就是说我下一步要有至少 14 w 帖子需要修改。 sai!
木铎校园 BBS 社区%b)R:R(|%O|8o QW:^,\)@"P0*p0AY9IZ"R)K/v@&W0说句良心话,转换程序的确难写,因为要多两套论坛系统都比较熟悉才能够写得出来,作者也的确不是很容易的,只是思维和思路上有些欠缺,作为官方发布的产品,多少有些让人失望,瑕不掩瑜,作者也很辛苦了,衷心的表示感谢。。。。
木铎校园 BBS 社区5|E/x5a@Q&cz3A5w!u