这次来分享下 Dz 转wordpress踩过的坑以及使用的方法。

在开始之前我先吐槽一下Dz数据表,能不能在多点,几百张表,有必要搞这么多吗,也是无语了。找的时候简直崩溃呀。这次主要是先把帖子和用户数据转移到wordpress 以及bbpress里面,刚开始做的时候以为很简单,应该区别不大,后来发现,我错了。 没有考虑到数据量的大小,用户表里面有几万个用户,然后帖子里面有30多万条数据。然后数据库编码格式是GBK的,这个没有想到,因为习惯了wordpress 以为都是utf8 的,所以在导出的时候,都是乱码。所以大家在开始做的时候,记得先看下编码格式。然后我说下我整个搬迁的过程。
1:用户数据搬迁,dz用户表 (uc_member)有很多字段,wp不需要这么多字段,所以我把数据导出后导入到临时表里面,根据wp字段把dz用户表做了修改,然后还有一点就是 wp不支持中文登录,所以登录user_login 使用的随机名称,然后将其导入到wordpress user表中 成功

2:帖子数据搬迁,这块儿要做的事情就多了。 首先不一样的地方就是dz用户使用的编辑器存储到数据表里面的内容,都是通过该编辑器生成的一些标签,比如[url][/url],这些wp里面是没有的,所以标签过滤和替换就是首要工作。最快的方法就是看dz论坛是怎么输出的,找到它的方法,拿过来直接使用。通过一段时间的查找发现dz那边封装好了一个类,不错,我直接拿过来。然后跟wp做下整合。

接着就是分析数据表,先分析bbpress 是怎么存储的,大致分了三个部分,板块,帖子,回复内容,三个不同的文章类型,都在wp_posts 表里面,然后他们的关系通过wp_postmeta 这个表里面添加的属性来进行关联。找到了bbpress的规律,再看dz帖子表里面的规律,也是都在一个表里面,然后通过一个tid和position 来进行区分是帖子还是回复内容。 将数据导出来放到临时表里面,通过代码将数据拿出来,重新组合放到bbpress里面。这个时候要考虑数据量,我处理的数据大概有30多万条,所以想到了分批插入的笨方式,将数据一条条判断重组的形式插入进入。 只要能插入成功就行,所以没有在这上面进行速度优化,所以插入这些数据的时候花了不少时间。不过结果还算好吧。

说一下,我使用的是 Navicat 来来回回不知道重复了多少次,删除,导入,导入删除。 花了不少时间,所以特此在这边做下记录。
代码就不贴了,为了自己操作方便,没有做封装。 后面有时间在说吧。