数据转换程序 雷傲论坛(Leobbs4.x) -> Discuz!NT V1.0
本转换程序基于Leobbs4.x设计
声明:
1.本程序只对数据作转换,不会对原来的雷傲论坛(数据造成破坏,如果担心数据丢失,请先作备份,我们不会对任何此类型的数据丢失负责;
2.在使用本程序作转换前,如果 Discuz!NT 论坛有数据,请先做好备份,转换程序会自动清空要转换的数据表.
3.请在转换开始前断开到源数据库的其它链接,保持源数据库只有转换程序在使用.
3.请勿将本程序用于商业用途,您可以自由传播它,但务必保留我们的版权信息.
4.如果您使用本程序则表明您已接受以上声明!
本程序适用版本:
Leobbs4.x
本程序所需环境:
1. Net Framework 2.0+MS Sql2000;
本程序可以转换的数据:
会员数据、版块数据、主题数据、帖子数据、附件数据、投票数据、联盟论坛数据
投票有效期为转换当日的60日
本程序保存原始帖子和生成新ID的对应(可自行设置404保持原帖子的指向)
本程序不能或无法完整转换的数据:
1.帖子标题长度超出 60 字节的部分将被截掉,帖子作者用户名长度超出 20 字节的部分将被截掉;
2.一些不符合DNT数据标准的垃圾数据;
3.不完整(如文件为空,缺少属性等)的各类雷傲数据;
4.对于不能转换的数据一律当做不存在处理。
可能存在的问题:
1.部分附件不能转换成功。
2.个别投票转换失败
转换前:
1.请确认您已经成功安装了 .Net Framework 2.0
2.请确认您已经成功安装了 Discuz!NT V1.0 ;
3.由于转换过程非常消耗资源,所以建议您尽量在服务器空闲期间进行。
4.为确保转换正常,请在转换时关闭Leo论坛
5.正确填写转换程序的参数配置
6.确保转换程序leo2DNT目录可写(自动生成日志文件log.txt)
7.确保LeoBBS下数据的完整性,必须包含以下数据:
cgi-bin/member***/allmember.pl
cgi-bin/member***/old
cgi-bin/data/allforums.cgi
cgi-bin/forum*/
cgi-bin/boarddata/jinghua*.cgi
cgi-bin/boarddata/ontop*.cgi
cgi-bin/boarddata/boardstats.cgi 读取topics和posts的数量
cgi-bin/data/shareforums.cgi 联盟论坛
cgi-bin/FileCount
8.数据库更改操作
1)在topic表末尾增加字段 oldId(int)
2)在users表末尾增加字段OldLastpostid(char(50))
3)把forums表的主健标识选项取消,记得转换完毕再改回
9.按照leo2DNT操作界面进行配置,仔细填写。
10.注意:测试好sql的数据库连接后转换按钮才能使用!
转换中:
1.转换是依次顺序进行的,可以依次单独转换也可以批量转换;
2.如果转换过程中程序终止运行,请根据生成日志文件log.txt中出错提示信息进行检查.
3.转换所需时间取决于您的数据量大小、数据结构的标准与否、转换程序所在平台的性能、网络状况等因素。
转换后:
1.如发现转化数据不完整可以查询转换日志进行排查,转换过程不可逆!
2.请将 Dvbbs 的附件目录 uploadfile 及其下所有子目录或文件移至 Discuz!NT 的附件目录 upload 下,不要给uploadfile目录改名;
3.把leo头像文件夹non-cgi/avatars转移至images/avatars/leobbs/ 下
4.在dnt根目录建立LeoUsr文件夹,把non-cgi/usr***下所有文件全部迁移过去
5.把forums的主健设置为标识
6.转换后请依次点击点击右侧的按钮,然后用超级管理员帐户登陆后台-论坛维护-论坛数据维护-系统调整论坛版块
7.请用管理员帐号登录 Discuz!NT 论坛后台执行更新论坛统计、更新缓存操作
8.转换完毕后如果发现用户数据不准确或个别用户数据有所遗漏,可以通过[手动修复用户]进行修复(修复前确保在memberso***old下存在该用户的配置文件)
9.(可选)topics表中oldId字段为url中topic的值,可以自己通过结合fid设置404保持原链接的有效(在根目录下建立cgi-bin的空目录)
10.其它图片自行手动迁移
注意:转换的错误日志都在log.txt中进行记录,部分错误不影响转换结果,一切请以转换结果为准
技术支持:
1.如果任何问题 请到http://bbs.51aspx.com 发帖求助. 发帖时请注明LeoBBS: 数据库大小、主题数、贴子数、用户数、分表个数和日志错误编号。
并详细描述您所遇到的问题。
2.作者:liudao,51aspx(http://www.51aspx.com),这里对[戏水]的大力相助表示感谢!
常见问题及解决方法:
1、提示“帖子保存失败”?
解决方法:
1)可以用下面的语句得到某个分表中最大pid值 select max(pid) from dnt_posts1
2)Sql版本中运行DBCC CHECKIDENT ('dnt_postid', RESEED, 1000) ,其中1000是dnt_post1的最大ID
3)删除 dnt_postid中的那条记录 再新增一条, 这时候你会发现pid字段 的值为1000
2、主题显示错乱(默认是按照lastpostid显示的)
修改dnt_gettopiclist存储过程 把order by lastpostid 改为 lastpost,运行一段时间再改过来
3、修改帖子时总是提示“未将对象引用设置为实例”之类的错误
请检查对应帖子中posterid是否存在该用户
[复制到剪贴板]CODE:
select max(pid) from dnt_posts1
转换速度参照
users 71201条
forum 107个
topics 57587条
posts 282691条
poll 865个
转换时间:1小时15分
环境配置:CY2.66 1G Win2003Server
本文转自 liudao 博客园博客,原文链接:http://www.cnblogs.com/liudao/archive/2007/08/24/868588.html,如需转载请自行联系原作者