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

   日期:2024-12-25    作者:88swu 移动:http://mip.riyuangf.com/mobile/quote/18911.html

有不少站长来咨询过将两个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对应关系后插入到新网站


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号