开发者社区> 技术小阿哥> 正文

Leo2DNT(雷傲论坛转DiscuzNT)1.0转换程序发布

简介:
+关注继续查看

数据转换程序 雷傲论坛(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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
+关注
技术小阿哥
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
OB白皮书最终版
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载