从Discuz5直接转换到vbb3.6.4

Posted by

可以平滑转换的数据有:

1、用户
2、同名管理员账号合并
3、用户组
4、版面
5、主题
6、帖子
7、悄悄话
8、附件
9、表情

目前除了投票系统之外,论坛的基本功能数据都可以从 Discuz 顺利转换至 vBulletin 3.6。
本来是要把转换过程中的词语全部汉化以后再发布,但是发现语言文件似乎有些问题,所有先发布英文版本并做转换说明。
等语言文件翻译完成测试无误后再补充中文汉化版。

安装步骤说明:

1、Discuz 4.1 与 5.0 如果使用了 UTF8 编码,可以直接进行第3步。如果使用的是 GB 编码请先执行第2步。

2、使用附件中ConvertZ8.02 中文 Big5/GBK/Unicode/UTF8 内码转换器
2.1使用ConvertZ不需要iconv函数,在本机就可以了。你需要将DZ数据库导出到sql文件,然后将sql文件采用转换器转到UTF8简体格式,选择好输出的位置,转换后就得到你的UTF数据库了
2.2最好采用同一个数据库导入导出程序,以免出错。并且强烈建议采用MYSQL4.1,我采用mysql4.0.25,附件出错,我在本地的套件为easyphp 1.8
2.3我采用的数据库导入导出的工具为phpMyBackupPro,这是个开源的数据库导入导出工具,很好用。注意导入导出的数据库的名字要一样,否则在导入时,phpMyBackupPro会把不同名的数据库删除。这个软件是开源的,直接去官方下载即可

3、将附件解压缩后,把 impex 目录 和 includes 目录上传至 vBulleitn 根目录。

4、打开 impex 目录中的 ImpExConfig.php 文件,配置 vBulletin 数据库和 Discuz 数据库的名称、用户名、密码、表前缀等信息后保存。

5、进入 vBulletin 后台,左侧功能管理列表会出现“导入选项”,点击“导入”后如果出现要求输入客户号的页面,默认留空,转换类型一律使用 Discuz 5.0 模式。选择完毕后点击进入转换导入步骤列表。

6、导入模块列表从上至下依次为:

001 检测和更新数据库
002 合并用户
003 导入用户组
004 导入用户
005 导入讨论区
006 导入主题
007 导入帖子
008 导入投票
009 导入悄悄话
010 导入附件
011 导入表情

导入顺序从 001 开始,不可直接执行后面的步骤,因为数据转换前后有依赖关系。

除了008以外全部执行完数据转换导入后重点看以下整理步骤。

1、进入讨论区管理,点击“保存显示顺序”。
2、进入“维护” – “执行更新计数器”,把所有信息该重建的重建,该重新统计的重新统计。
3、在 vBulletin 使用的数据库中执行下列语句:

代码
PHP 代码:
update forum set parentid = -1 where parentid =0

完成这三步以后,主题就会正常在各版面内显示了。当然转换过来以后讨论区分类会比较乱,手动调整一下即可。

4、进入用户组管理,会发现多出好多自定义用户组,把这些自定义用户组中的用户移动到 vBulleitn 默认的用户组中,并设置好权限,悄悄话就正常显示了。也可以直接删除这些自定义用户组,自定义用户组中的的用户在删除后会被自动归类到 vBulletin 的注册会员用户组中,这样就完成了用户组的整理。

5、关于附件:导入附件的时候无论 vBulletin 的附件是存在数据库还是文件夹目录中都可以。(注意:导入步骤中要求填写的是 Discuz 论坛的附件目录路径,不要错填成 vBulletin 的。)

附:我的转换结果
1.贴子及会员附件等全部转换成功,但是投票及会员的积分没有了,会员发贴会是对的。
2.如果不执行update forum set parentid = -1 where parentid =0,在讨论区内没有显示论坛的父目录,在执行了这个SQL语句,在讨论区内就多出来一倍的讨论区,需要把多余的讨论删除,删除里要看清楚,不要将有用的讨论区删除
3.讨论区的排序方式及显示的内容设置,均需要重新设置
4.所有会员的时区均设置为英国的时间,需要在数据库中所有会员的时区字段更改为8,即user表中的timezoneoffset字段,全部更改为8
5.所有会员的编辑器设置均为无工具栏最简的编辑器,需将会员的编辑器字段更改为1,即user表中的showvbcode字段值设定为1(如果想采用所见即所得的编辑器,需要将字段设定为2,但不推荐2,推荐为1.VBB默认的也是1)
6.强烈建议在转换前,将VBB的附件存储位置改成在空间中存放,否则附件转换很难成功。
7.将所有的会员的时区字段及编辑器字段更改,还是在数据库中采用update命令,一次性全部转换
8.在第二步合并会员时,如果在你的VBB论坛中已经有会员,如果你想让你导入的会员与VBB中的同名会员资料一致,就需要在第二次中设置好会员同步了,否则直接默认就可以了。
9.附件转换时,不要设置的一次性数值太大,我在转换时用250和100均没有成功,后来用50成功了。并且在附件转换时,如果显示执行中断了,要等一会员再执行导入,再一次占导入菜单时,会从上次中断的地方重新开始。如果你在程序中断后马上点击导入菜单,重新来过,会形成很多冗余的数据,例如原来一贴子的附件为1个,重新导入过快的话,就变成2个或者3个了。

建议你在导入时,将所有的数据放在本机环境,导入成功后再上传到服务器中,在“维护”--“执行更新计数器”--“重建搜索索引”,我在本机没有成功,将所有的数据上传到服务器后,重新索引及图片缩略图成功了

我已经成功从DZ5直接转到VBB3.6.4,希望你也能成功

附件中为用到的三个程序,程序套件自己选择吧。
并非我首创,呵呵,只是共享,原来推荐采用JEOY的TOUTF8来转换编码,我改成了convertz,加进去了我的转换经验。

这里面主要内容转贴于thforum.cn论坛,我只是将我部分内容改动了一下,使其更方便使用

相关程序下载地址:
phpMyBackupPro.v.1.8
impex
convertz 内码转换器

5 comments

  1. 你好,从php原动力看到这个链接
    我最近从dz5.5 UTF8 转VBB3.6.8 其余都没有问题,只有帖子内容(英文帖子) 变成了html源码,比较头疼。不知道你又何经验。

  2. VBB默认贴子是不解释HTML的
    DZ的贴子里面有HTML标记,你在VBB的后台,论坛设置中,设置贴子中可以使用HTML就应该可以了

    我以前转换时,我里面没有什么html,所以自己手动改了一些

    之所以不用HTML,并不是感觉不安全,而是觉得版面太乱了,没有纯文本的清爽

  3. 恭喜啊
    看你的邮箱的域名,还真不错,如果这个域名是你的,发财了

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注