discuz数据转换到carbon

discuz数据转换到carbon

By 白开水 at 2017-01-05
3人收藏 • 7720人看过

选择cb基于3点:

https支持较好

可以qq登录

方便快速占用小

安装后尝试将dz数据转换过来,目前结果如下:

转换用户数据,语法正确,但转换后密码不对了。

insert into `carbon_users`(`ID`,`UserName`,`Salt`,`Password`,`UserMail`,`UserRegTime`,`LastLoginTime`)
select `uid`,`username`,`salt`,`email`,`password`,`regdate`,`lastlogintime` from `bbs_ucenter_members`

转换论坛帖子数据

insert into `carbon_posts`(`ID`,`TopicID`,`UserID`,`UserName`,`Subject`,`Content`,`PostIP`,`PostTime`)
select `pid`,`tid`,`authorid`,`author`,`subject`,`message`,`useip`,`dateline` from `bbs_forum_post`

转换论坛话题数据

insert into `carbon_topics`(`ID`,`Topic`,`Tags`,`UserID`,`UserName`,`LastName`,`PostTime`,`LastTime`,`LastViewedTime`,`ListsTime`)
select `tid`,`subject`,`fid`,`authorid`,`author`,`lastposter`,`dateline`,`lastpost`,`lastpost`,`dateline` from `bbs_forum_thread`

转换论坛标签数据,显示是有了,但点击标签后,无内容

insert into `carbon_tags`(`ID`,`Name`,`TotalPosts`,`MostRecentPostTime`,`DateCreated`)
select `fid`,`name`,`posts`,`rank`,`rank` from `laobird`.`bbs_forum_forum` WHERE fup=’2′


29 个回复 | 最后更新于 2017-01-18
白开水
2017-01-05
#1

原网站,基于dz,www.laobird.com

cb网站,https://www.gamer.net.cn/

香草大叔
2017-01-05
#2

厉害了,等坛主开发转换程序!其实我有个地方门户也想转换!

lincanbin
2017-01-05
#3

标签跟帖子的对应数据,在carbon_posttags里。

lincanbin
2017-01-05
#4

你转换语句的email跟password反了。

白开水
2017-01-05
#5

转换论坛用户数据


insert into `carbon_users`(`ID`,`UserName`,`Salt`,`Password`,`UserMail`,`UserRegTime`,`LastLoginTime`)
select `uid`,`username`,`salt`,`password`,`email`,`regdate`,`lastlogintime` from `bbs_ucenter_members`


转换论坛帖子数据


insert into `carbon_posts`(`ID`,`TopicID`,`UserID`,`UserName`,`Subject`,`Content`,`PostIP`,`PostTime`)
select `pid`,`tid`,`authorid`,`author`,`subject`,`message`,`useip`,`dateline` from `bbs_forum_post`


转换论坛话题数据


insert into `carbon_topics`(`ID`,`Topic`,`Tags`,`UserID`,`UserName`,`LastName`,`PostTime`,`LastTime`,`LastViewedTime`,`ListsTime`)
select `tid`,`subject`,`fid`,`authorid`,`author`,`lastposter`,`dateline`,`lastpost`,`lastpost`,`dateline` from `bbs_forum_thread`


转换论坛标签数据


insert into `carbon_tags`(`ID`,`Name`,`TotalPosts`,`MostRecentPostTime`,`DateCreated`)
select `fid`,`name`,`posts`,`rank`,`rank` from `laobird`.`bbs_forum_forum` WHERE fup='2'


转换标签话题帖子对应数据


insert into `carbon_posttags`(`TagID`,`TopicID`,`PostID`)
select `fid`,`tid`,`pid` from `bbs_forum_post`


白开水
2017-01-05
#6

数据基本转换完成,但还有个问题,dz论坛通过qq互联登录的帐号,salt含有字母,导入cb时提示超出变量范围。

lincanbin
2017-01-06
#7

回复#6 @白开水 :

你把Carbon里的Salt字段改成varchar类型就好了。

白开水
2017-01-09
#8

搞定了。

还有个问题,就是dz论坛的帖子一般格式是UBB的,如何转换为html?

或者cb能否支持UBB?

lincanbin
2017-01-09
#9

回复#8 @白开水 :

不能,但是UBB转HTML的函数很好找。

白开水
2017-01-10
#10

网上找到不少转换的函数,但基本都是纯粹的通配符匹配后替换,

但论坛帖子这么多,需要批量对数据库进行操作,实在是搞不定。

能不能提供一个操作数据库替换的php文件?

白开水
2017-01-16
#11

回复#9 @lincanbin :

数据已转换。

还有一个问题要请教一下,我设置每页显示20个主题,

但部分回复很多的主题,每页显示的主题数量就很少,

比如

https://www.gamer.net.cn/tag/%E3%80%90+%E7%8B%82%E4%BA%BA%E5%A8%B1%E4%B9%90%E4%B8%AD%E5%BF%83+%E3%80%91

只显示了3个主题,后面几页也只显示3-4个主题,

请问是什么原因?

lincanbin
2017-01-16
#12

回复#11 @白开水 :

感觉是数据没转好。

白开水
2017-01-16
#13

回复#12 @lincanbin :

我认真数了一下,好像不是每页显示20个主题(topic),变成每页显示20个帖子(含回复,即post)了。

lincanbin
2017-01-16
#14

回复#13 @白开水 :

每页主题和帖数显示都是分开设置的。

白开水
2017-01-16
#15

回复#14 @lincanbin :

dz的帖子主题tid对应cb的话题TopicID,thread对应topic

dz的帖子回帖pid对应cb的帖子PostID,post对应post

这个对应关系应该是正确的吧?

cb的tag.php计算分页是这个

$TotalPage = ceil($TagInfo['TotalPosts'] / $Config['TopicsPerPage']);

用的是TotalPosts,感觉上应该是要用TotalTopics

lincanbin
2017-01-16
#16

回复#15 @白开水 :

TotalPosts只是当时起名写错了而已,实际上它的功能就是TotalTopics。

lincanbin
2017-01-16
#17

回复#15 @白开水 :

你后台刷新全站统计数据试试。

白开水
2017-01-16
#18

回复#17 @lincanbin :

刷新了,仔细计算过,发现确实是按post/20来计算分页,并显示topic

分页方式大概是这样,一页20个post,然后显示对应的topic,

如果一个topic下没几个回复,就会显示比较多的topic,

如果topic回复很多,一页就只显示3-4个topic了。

lincanbin
2017-01-16
#19

回复#18 @白开水 :

官网没这个问题吧。


登 录


现在注册

QQ  登 录    Weibo  登 录    GitHub  登 录