找回密码
 立即注册
查看: 1379|回复: 0

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

[复制链接]
等级头衔

等級:网站编辑

积分成就
威望
0
贡献
0
主题
260
精华
0
金钱
736
积分
1037
注册时间
2012-10-30
最后登录
2022-1-27

爱我家 发表于 2020-11-15 04:26:53 | 显示全部楼层 |阅读模式

有不少站长来咨询过将两个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对应关系的处理,如果要处理其他如门户家园数据或插件数据,可依照上面的思路针对性的操作;



◇爱我家◇-->awoj.cn
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

下载手机安卓版|手机版|劉家. ( 京ICP备05079106号 )

GMT+8, 2024-12-28 00:29 , Processed in 0.240813 second(s), 26 queries . Template by CnRen.Vip

版权: 劉家(CnLiuJia) 信息:来源于网络

Copyright © 2000-2024 CnLiuJia.Com Inc.All Rights Reserved

快速回复 返回顶部 返回列表