Discuz!教程之两个Discuz!论坛合并的一般处理思路

有不少站长来咨询过将两个Discuz!论坛合并的问题,目前这个问题是没有什么通用工具可用的,而且由于网站情况各不相同在实际操作中面对的问题也千差万别。人工智能实验室(http://www.ailab.cn)在本文介绍一下将网站基础数据:用户表、主题表、回复表合并的一般思路。
由于基础id:uid、tid、pid都是自增长字段,因此两个网站会有很多重复id,合并之后,其中一个网站的数想要再保持原有的id是不现实了,因此在合并过程中要记录新的id和旧的id对应关系,假设一网站A为合并目标网站,网站B的数据导入到网站A来实现合并,具体操作思路如下:
1、在A中建三个表
pre_fid_relation 字段为 newfid和oldfid 此表数据需要在正式转换数据之前列号对应关系,即就网站的版块fid对应转到新网站版块的fid;
pre_uid_relation 字段为 newuid和olduid
pre_tid_relation 字段为 newtid和oldtid


2、从B网站中依次读取 pre_ucenter_members 数据
2.1 用表中的用户名、邮箱加个随机密码注册到网站A中,注意是用uc接口的注册方法,而不是直接将数据插入到pre_ucenter_members;
2.2 记录原uid和2.1中的新uid对应关系表到 pre_uid_relation 
2.3 使用2.1中读取的数据更新网站A表中newuid对应用户的password、salt、secques三个字段,这样新用户的密码就恢复成原网站的了;
2.4 注意点:合并过程中可能遇到用户名或邮箱重复的问题,需要提前在程序中有所处理;


3、合并主题表:将网站B中的pre_forum_thread数据依次读取,去掉tid字段数据,fid按照pre_fid_relation替换处理,替换authorid字段数据对应的newuid,插入到网站A的pre_forum_thread数据表中,记录newtid和oldtid对应关系到pre_tid_relation;


4、合并主题内容和回复内容数据:将网站B中的pre_forum_post数据依次读取,去掉pid和position字段数据,fid按照pre_fid_relation替换处理,替换authorid字段数据对应的newuid,替换tid字段为newtid,插入到网站A的pre_forum_post数据表中;


5、善后处理:
5.1 用户统计数据表:pre_common_member_count 按pre_uid_relation从B网站获取数据更新到新网站;
5.2 用户资料表:pre_common_member_profile 按pre_uid_relation从B网站获取数据更新到新网站;
5.3 更新网站A中各个版块的发帖数据和回复数到 pre_forum_forum 表;
5.4 以上仅针对普通主题,如果是投票、辩论、商品帖等特殊主题,还需要一次复制对应类型的附件数据并替换id对应关系后插入到新网站;

6、本帖方法仅针对用户、主题、回复三大块基础数据的转移问题,其重点是新旧网站的id对应关系的处理,如果要处理其他如门户家园数据或插件数据,可依照上面的思路针对性的操作;
 

展开阅读全文
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值