subaru的笔记2:bmf转smf——多少年前的老黄历了啊

TC14年前 (2012-06-23)网站与博客765
/*先将 bmb 下的 userlist, forumdata(复制之前 一定 重新编辑bmb版块所属分类), threads, posts 复制到smf数据库里,
这里设bmb的表前缀为gmly_,smf的表前缀为smf_ 转换所有表前请清空目标表原有内容*/
/*=======convert users(or members)=========
转换时忽略了用户所属的用户组(除管理员外),故需要重新在smf里设置版主等人员*/
TRUNCATE smf_members;
INSERT INTO smf_members
SELECT
    userid, username, regdate, postamount, IF(ugnum = 0,1,0) AS ID_GROUP,
    NULL, lastlogin, username, 0, 0, NULL, NULL, NULL, pwd,
    mailadd, NULL, 0, "0001-01-01", NULL, NULL, NULL,
    NULL, NULL, NULL, NULL, 0, 1, NULL, signtext, 0, NULL,
    0, 0, 0, NULL, 1, 1, 0, 2, NULL AS memberIP, pwdask,
    pwdanswer, 0, 1, NULL, 0, NULL, NULL, 0, 0, NULL
FROM gmly_userlist;
–=============转换分类============
/*准备工作
 1038107847    【本站站务】             11
 1090474717    【古墓丽影综合讨论】         12
 1090475426    【古墓丽影自制关卡讨论区】     19
 1090483164    【会员交流区】             20
 1094392525    【古墓玩家灵感空间】         21
 1094392531    古墓丽影1-3代             22
 1094392538    访客留言            23
 1094392539    会员相册            24
 1094392540    动作冒险            25
 1094392541    玩家攻略            26
 1124110813    【其他游戏】             27
*/
UPDATE gmly_forumdata2
SET forum_cid = 
WHERE forum_cid = ;
UPDATE gmly_forumdata2
SET id = 
WHERE id = ;
UPDATE gmly_threads2
SET forumid = 
WHERE forumid = ;
UPDATE gmly_posts2
SET forumid = 
WHERE forumid = ; 
—————————
TRUNCATE smf_categories;
INSERT INTO smf_categories
SELECT id, showorder, bbsname, 1
FROM gmly_forumdata
WHERE type = "category";
–================转换版块==================
/*之后可能还要在smf里重新编辑一下顺序。转换后的版块权限修改为smf默认的游客和正式会员都可以浏览,游客不能发帖*/
TRUNCATE smf_boards;
INSERT INTO smf_boards
SELECT 
    id, forum_cid, 0, 0, showorder, 0, 0, 
    "-1,0",    bbsname, cdes, topicnum,
    replysnum + topicnum, 0, 0, 0, 0 
FROM gmly_forumdata
WHERE type != "category";
–========convert topics===========
TRUNCATE TABLE smf_topics;
INSERT INTO smf_topics
SELECT
    t.tid AS ID_TOPIC, 0 AS isSticky, t.forumid AS ID_BOARD,
    MIN(p.id) AS ID_FIRST_MSG, MAX(p.id) AS ID_LAST_MSG,
    p.usrid AS ID_MEMBER_STARTED, 0 AS ID_MEMBER_UPDATED,
    0 AS ID_POLL, t.replys AS numReplies, t.hits AS numViews,    
    t.islock AS locked
FROM (gmly_threads AS t, gmly_posts AS p)
WHERE p.tid = t.id
GROUP BY t.id
HAVING ID_FIRST_MSG != 0
    AND ID_LAST_MSG != 0;
–=========convert posts(messages in smf)=========发帖心情全改为默认
/*看看
INSERT INTO smf_messages
SELECT 
    p.id, p.tid, p.forumid, p.timestamp, p.usrid,
    p.id, p.articletitle, p.username, u.mailadd,
    p.ip, 1, IF(p.timestamp = p.changtime, 0, p.changtime),
    REPLACE(p.other4, LEFT(p.other4, 17), ""),
    REPLACE(p.articlecontent, ‘<br>’, ‘<br />’), "xx"
FROM (gmly_posts AS p, gmly_userlist AS u)
WHERE u.userid = p.usrid;
注意上面这个=,由于发现在posts表里有一些usrid=0,这样where出来就没结果,这一行就会被跳过,
为了避免此种情况,我想是不是可以在用户表里间建一个id为零的,或者,用下面新方法*/
TRUNCATE TABLE smf_messages;
INSERT INTO smf_messages
SELECT 
    p.id, p.tid, p.forumid, p.timestamp, u.userid,
    p.id, p.articletitle, p.username, u.mailadd,
    p.ip, 1, IF(p.timestamp = p.changtime, 0, p.changtime),
    REPLACE(p.other4, LEFT(p.other4, 17), ""),
    REPLACE(p.articlecontent, ‘<br>’, ‘<br />’), "xx"
FROM (gmly_posts AS p, gmly_userlist AS u)
WHERE u.username = p.username;
–=============最后在smf后台 论坛维护 -> 一般维护 -> 重新计算论坛所有的统计资料
/////////
UPDATE gmly_forumdata2
SET id = 22
WHERE id = 1094392531;
UPDATE gmly_threads2
SET forumid = 22
WHERE forumid = 1094392531;
UPDATE gmly_posts2
SET forumid = 22
WHERE forumid = 1094392531; 
UPDATE gmly_forumdata2
SET id = 23
WHERE id = 1094392538;
UPDATE gmly_threads2
SET forumid = 23
WHERE forumid = 1094392538;
UPDATE gmly_posts2
SET forumid = 23
WHERE forumid = 1094392538; 
UPDATE gmly_forumdata2
SET id = 24
WHERE id = 1094392539;
UPDATE gmly_threads2
SET forumid = 24
WHERE forumid = 1094392539;
UPDATE gmly_posts2
SET forumid = 24
WHERE forumid = 1094392539; 
UPDATE gmly_forumdata2
SET id = 25
WHERE id = 1094392540;
UPDATE gmly_threads2
SET forumid = 25
WHERE forumid = 1094392540;
UPDATE gmly_posts2
SET forumid = 25
WHERE forumid = 1094392540; 
UPDATE gmly_forumdata2
SET id = 26
WHERE id = 1094392541;
UPDATE gmly_threads2
SET forumid = 26
WHERE forumid = 1094392541;
UPDATE gmly_posts2
SET forumid = 26
WHERE forumid = 1094392541; 
标签: 百度空间smf

相关文章

微软不干了!Live Spaces 要死了~~

微软不干了!Live Spaces 要死了~~

微软的 Windows Live Spaces 明年3月关闭,可将msn空间迁移至 wordpress.com。这真是很棒!是微软和wordpress合作开发的迁移程序,不仅帮你完整搬家,还会将live spaces自动转址,wordpress上也可以勾选更新时通知msn联系人。虽然我的msn空间...

虽然QQ空间很脑残……

虽然QQ空间很脑残……

但我大概会搬过来!太多人用这个了啊,初中朋友、高中朋友、大学朋友……我大概会搬过来!!...

mediawiki数据清理

mediawiki数据清理

我估计以后每隔一段时间就会删一下mw的数据,所以记录一下。以下命令进入mw的 maintenance 目录执行。  注:ply装了php8,但启用的是7.4,所以直接输入php的话会提示错误,要搭上7.4:php7.4 deleteArchivedFiles.php --dele...

Lofter真是很好,如果支持域名绑定、博客搬家,就几乎完美了。

Lofter真是很好,如果支持域名绑定、博客搬家,就几乎完美了。

根据百度之前的表现,对百度空间的功能确实不太看好……陈年旧评分割线(评论顺序 ↑)sxmedical:nihao07remember:百度空间不行,太垃圾...

菊子曰:离线博客发布与备份软件

菊子曰:离线博客发布与备份软件

有兴趣可以试试……“一不小心”就把新浪和Qzone的不少文发过来了-__-我好像不应该拿我作为主博客的百度空间来做实验==乌鸦  9:42:02在玩菊子曰乌鸦  9:42:13本地写博的东西费茨  9:42:13……乌鸦  9:42:26可以批量下载批量发表……费茨  9:42:29费茨  9:4...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法和观点。