Discuz!4.1多论坛数据库手工合并全记录

互联网 | 编辑: 宋杰 2006-08-15 14:00:00转载-投稿 一键看全文

自己开始想建立个网站群,于是分别建立了三个论坛:一千零一夜娱乐论坛(http://bbs.1001year.net/)、宠物论坛(http://bbs.1001pet.com/)、美食论坛(http://bbs.1001cate.com/)。每个论坛定位详细,分别面向不同的用户群。三个论坛建立起来了,但是用户并没有完全遵照论

多论坛数据库手工合并(2)

第三步:合并数据库。

备份数据的时候,尽量只备份有内容帖子的数据。为了避免麻烦,把2级目录的东西都转到了1级论坛下,这样合并的时候,在目标论坛上就不用建立太多版块。

1:在1001Year中建立1001cate和1001pet的板块,然后记录1001cate和1001pet在1001year论坛对应的fid(就是版块号,鼠标放到论坛首页各个版块的文字上面就可以在状态栏看到版块号了)。

本步骤解释:为了帖子准确和不出现错误,必须将所有板块全部记录完整,为了帖子对应,一定要详细。

2:因为还牵扯到会员重名的问题,毕竟我们都不会PHP只能手动操作,数据大的论坛最好找个高手写个程序检测。

在检测完会员后,需要升级数据库,如下:
CODE:
[Copy to clipboard]
UPDATE `cdb_members` SET `username` = '臭鱼old' WHERE `username` = '臭鱼';

本步骤解释:这里是将会员里叫"臭鱼"的用户改名为"臭鱼old",用户名任意,在此只是举例。

3:1)数据库升级一:主题+帖子+会员+附件的升级。

注意:这里所说的数据库升级,都是在原论坛进行的!因为要把数据合并到目标论坛,保持目标论坛数据不动。

也就是上面所说的那些重要的表,代码如下:
CODE:
[Copy to clipboard]
UPDATE cdb_memberfields SET uid=uid+1839;
UPDATE cdb_members SET uid=uid+1839;
UPDATE cdb_threads SET authorid=authorid+1839;
UPDATE cdb_posts SET authorid=authorid+1839;
UPDATE cdb_threads SET tid=tid+3522;
UPDATE cdb_posts SET tid=tid+3522;
UPDATE cdb_posts SET pid=pid+23397;
UPDATE cdb_attachments SET tid=tid+3522;
UPDATE cdb_attachments SET pid=pid+23397;
UPDATE cdb_attachments SET aid=aid+8000;

当然,这里你要根据你目标论坛的会员数、主题数、帖子数和附件数量进行设置,比如:
CODE:
[Copy to clipboard]
UPDATE cdb_memberfields SET uid=uid+1839;
根据我的目标论坛的会员数,最后一个UID是1839,这样升级的时候就将源论坛里的UID全部加1839。其他表内的数据也是根据这个来的,包括发贴量、主题数,都可以在你论坛看到。附件可以在后台查看ID号。

2)数据库升级二:版块的升级。

这里说的版块的升级,就是为了将源论坛的版块对应目标论坛新建的版块。

代码如下:
 CODE:
[Copy to clipboard]
UPDATE cdb_threads SET fid=105 WHERE fid=41;
UPDATE cdb_threads SET fid=106 WHERE fid=42;
UPDATE cdb_threads SET fid=107 WHERE fid=27;
UPDATE cdb_threads SET fid=109 WHERE fid=38;
UPDATE cdb_threads SET fid=108 WHERE fid=34;
UPDATE cdb_threads SET fid=110 WHERE fid=13;
UPDATE cdb_threads SET fid=113 WHERE fid=17;
UPDATE cdb_threads SET fid=112 WHERE fid=16;
UPDATE cdb_threads SET fid=111 WHERE fid=15;
UPDATE cdb_threads SET fid=115 WHERE fid=43;
UPDATE cdb_threads SET fid=114 WHERE fid=19;
UPDATE cdb_threads SET fid=116 WHERE fid=14;
UPDATE cdb_threads SET fid=117 WHERE fid=23;
UPDATE cdb_threads SET fid=118 WHERE fid=25;
UPDATE cdb_threads SET fid=119 WHERE fid=26;
UPDATE cdb_posts SET fid=105 WHERE fid=41;
UPDATE cdb_posts SET fid=106 WHERE fid=42;
UPDATE cdb_posts SET fid=107 WHERE fid=27;
UPDATE cdb_posts SET fid=109 WHERE fid=38;
UPDATE cdb_posts SET fid=108 WHERE fid=34;
UPDATE cdb_posts SET fid=110 WHERE fid=13;
UPDATE cdb_posts SET fid=113 WHERE fid=17;
UPDATE cdb_posts SET fid=112 WHERE fid=16;
UPDATE cdb_posts SET fid=111 WHERE fid=15;
UPDATE cdb_posts SET fid=115 WHERE fid=43;
UPDATE cdb_posts SET fid=114 WHERE fid=19;
UPDATE cdb_posts SET fid=116 WHERE fid=14;
UPDATE cdb_posts SET fid=117 WHERE fid=23;
UPDATE cdb_posts SET fid=118 WHERE fid=25;
UPDATE cdb_posts SET fid=119 WHERE fid=26;

例如:UPDATE cdb_threads SET fid=105 WHERE fid=41; 41是源论坛的fid号,105即目标论坛新建的同样版块的fid号。

提示:以上的数据库升级,都是在源论坛操作,而不是在要合并到的目标论坛中操作。

4:数据升级完以后该合并了,这里用到了UE。

把合并完的数据,用4.1或者PHPMYADMIN的备份功能,将单独的表备份出来。例如:我先合并会员,就备份出cdb_memberfields表和cdb_members表。然后用UE打开,将源论坛中的数据复制到目标论坛的数据。

例如:会员的合并。在源论坛的数据库中查找cdb_memberfields,下面的INSERT INTO的内容,直到-- 表的结构 `cdb_members`前,全都是。全部复制,然后粘贴到目标论坛的cdb_memberfields表的最后。其他表的操作同上。按照此操作,将帖子、主题、附件等信息全部合并。

第四步:恢复数据。

至此,所有数据已经合并成功。推荐用PHP MYADMIN或者MYSQLTOOL还原到目标论坛。

提示:试试键盘 “← →” 可以实现快速翻页 

总共 2 页< 上一页12
一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑