说明:
1.本程序将把您的动网DVBBS7.0(SP2)ACCESS论坛的大部分数据转换为Discuz!2.2F(MYSQL版本)论坛的数据.
2,本程序只对数据作转移,不会对原来的mdb数据造成破坏,如果担心发生mdb数据丢失,请先作备份,我不会对任何此类型的数据丢失负责。
3,在使用本程序作转移前,必须先安装Discuz论坛(本程序只是对已经安装的Discuz论坛的数据库做替换操作),如果你已经有Discuz论坛,且有数据,请作备份,转换程序会清空原来的数据。
4,本程序只转换了用户,板块,主题和帖子(投票没有转换,因为我实在没时间去琢磨discuz的投票格式,板块需要重新设置具体属性,默认为所有的表情标签代码全部无效),短信(仅仅转换收件箱的短信,如有重要的发件箱邮件续预先保存),联盟论坛(discuz的排版格式可能有些令类,一_一#).解决了DVBBS中帖子标题的html造成版面错误(和标题过长问题),帖子中遗留乱码(html标签)问题.
5,转换过后,请用当前目录下的logging.php文件覆盖原Discuz的相同文件(根目录).(因为MD5的差异,DISCUZ不支持16位的MD5值,所以我修改了这个文件),覆盖此文件后,用户即可正常登陆,不需要重新注册或者重新设定密码.
6,确认成功转换后,请到论坛后台执行缓存更新,和下一个的数据更新(里面的3个都要更新一次).
7,成功测试环境:WINXP(PRO)+IIS5.1+PHP4.3.7+MYSQL4.0.20d+DVBBS7.0(SP2)ACCESS版+Discuz2.2f(GB2312)+DVBBS100MB的MDB数据库.
特别注意:
a.转换程序用到了ADODB类,需要ODBC(系统源)支持,linux和unix系统无法运行!当然,你也可以把mdb搬到自己的机子上转换,然后把MySQL数据库的内容再搬回你的网站.
b.用Access修改MDB数据库中的几个表:
dv_user
dv_board
dv_topic
dv_bbs1(这个字段根据你帖子数据而定,一般是这个)
Dv_Message
把上述几个表中类型为"时间/日期"的字段改为"文本"类型!
修改方法:右键点击表名,点击设计视图,找到后下拉更改.
如果MDB数据库太多无法实现更改类型的话也没关系,就是帖子的时间都成了12点,不影响其他.
程序使用
用记事本或者其他编辑器打开程序,根据实际,修改脚本开头提示的这些地方:
$access=D:/wwwroot/bbs/dvbbs7.mdb'; //dvBBS7论坛数据库文件,绝对路径,注意用"/"
$bbstable='dv_bbs1'; //dvBBS的帖子数据表,默认为这个,不确定请用access查看
$atturl='http://yourhost/UploadFile/'; //附件URL,注意后面要加上"/",指向附件目录(原来一般是UploadFile),以后的附件即像这样:http://yourhost/UploadFile/200353225929.jpg
$limit=3000; //每次处理的记录个数,3000左右比较好,由于php有运行时间限制,所以这个不能太大。
$mysql_host='localhost'; //MySQL主机
$mysql_user='root'; //MySQL用户名
$mysql_psword=''; //MySQL密码
$discuz2db='discuz2'; //discuz数据库
$tablepre='cdb_'; //discuz表名前缀(Discuz2.2f默认的就是这个,如果不清楚,请查看数据库)
$phpselfname='dvbbs7.0_to_discuz2.2f.php'; //本文件的名字,运行前请仔细确认一遍.
然后运行程序http://yourhost/dvbbs7.0_to_discuz2.2f.php(浏览器中),按照提示进行,我是在本机测试,过程中没有出现错误.
注意:如果数据库比较大,过程可能比较久,请等待.
特别提示,如果需要更详细的设置,请阅读源代码,我加了很详细的注释,很多地方可以手动设置
使用前注意
1,转换成功后要到后台 "系统管理"->"更新缓存","系统管理"->"重建统计数据"(这其中包含的三个都要更新一次).
2,论坛附件需要按以上自己定义的路径保存.
3,头像的目录请根据相对路径保存原来dvbbs的头像文件(你可以点击一个不显示的人的头像看看地址).
|