大徐

Icon

迁移到wordpress

@这是在本机测试环境写的。
最近blog受到大量垃圾信息的入侵,我可怜的自修改自维护的blogez已经无力抵抗,于是又动了迁移博客的念头。其实这个念头好长时间以前就有了,blogez这个程序的作者是个刚毕业的小伙,恰巧去年我俩都在北京万达广场附近工作,我还和他见过面。据他说早就不更新这个东西了,用户也没几个了,事实上这几年我自己总是尝试着去修改它。一方面是给自己一个编程的机会,另一方面我确实也觉得这是个特别有意思的事儿,于是就坚持用到了现在。

这个程序的问题确实很多,前端体验有差距,无论是后台还是前面的模板都不令我满意。安全性也不足。前段时间我blog就被挂马了。虽然如此,我一直还是觉得已经够用了,对于一个个人写作者来说,这样一个程序是足够了。况且blogez还是有优点的,比如直接生成html文件,访问速度好、对搜索引擎比较友好。在想来想去、修修补补中,这个程序一直用到了现在。
我自己的电脑上一直跑着一个wordpress2.02,用于对自己的知识管理,用着觉得也没有多好。前段儿时间帮张黑炮儿搭了一个wordpress,新版2.7的后台体验真是不错啊,让我眼前一亮,对于一个写字儿的人来说方便的输入和管理文字的功能很重要。于是我想,如果换到了wordpress,再也不会有那么多烦人的bug需要处理,反过来有那么多插件可用,有那么多模板可选。我可以安心写东西,有那么大的团队在做,不用再去考虑那些bug,也不用一切都自力更生了。

迁移的过程还是挺艰难的,开始我在网上找用rss的方式到处和导入,乱七八糟的网页看了一堆以后失去了兴趣。即使是用这个方法成功导入了,我还是需要对数据库进行操作,比如调整分类,替换原有的UBB标签等等。最终还是决定用导数据库的方式来迁移,blogez的数据库结构和wordpress截然不同,但我多少对SQL语句还有点了解,边上也有一堆工程师。于是开练,只有博客表和评论表数据较大,需要特别处理。别的表都没什么东西,分类表和链接表我手工就处理了,剩下的就全仍了。数据量其实很小,博客有800多条,评论有1000多条,分类只有几个,链接有20个左右。

首先是建本地环境,blogez和wordpress各建一个,导入最新的数据到blogez里面。最开始是找到坐我边上不远处的小强,他用了2小时帮我写了个脚本来跑这部分数据,按照新表的结构跑出sql文件。文件小于2m,我用phpmyadmin直接兑了进去,一切顺利。但是后来发现有大概有80条左右的数据没有成功导入,评论倒是没问题,小强这几天忙的要死,不好意思催人家。

然后巡视全公司,发现有个哥们儿比较闲,于是找上前去。这哥们用的方法和小强不一样,在本地库里面读和取,我俩一起整了两条sql语句就齐活了。我的任务就是说清楚老表的哪个字段对应新表的哪个字段,最后整出来一跑,很顺利。中间提示新表里有几个字段不能非空,我先把这几个字段改成null,默认null,然后导入数据,然后在清除字段的内容,然后在修改字段属性为not null,还是顺利的把所有数据导进去了。然后就是调整,用update更新文章所属的分类,用delete删除以前转载的乱七八糟的东西,再删除对应的评论,用update更新文章内容里面那些UBB代码为wordpress默认的html代码。这一切用了我大概3个小时的时间,中间不断尝试和找人咨询,最终胜利。

到今天下午4点多的时候数据已经没啥问题了,接下来就是弄模板的事情了。之前就在网上找好了Grid Focus这个模板,简洁的3栏板式,完全符合我的要求。调整css,增加和设置widget,这页面基本就算是搞定了,剩下的慢慢修理把。

最让我不放心的是rss输出,之前我用的都是自己的地址,http://daxu.net/rss.php,现在是http://daxu.net/?feed=rss2,这让我比较困扰。我把wp-rss2.php这个文件直接复制了一个rss.php,貌似可以,wp-rss2.php做的事情也是页面跳转。但就不知道上线以后跑在域名底下会是什么样子,我估计悬。这时候就显露用第三方服务或者只用域名不加后缀文件名的优势了,可能需要我的订阅者们更新一下地址,今天晚上先上去看看再说吧,我会尽量让rss.php依旧工作的。

除了feed地址有可能变化以外,我blog所有页面的url也都有变化,这对搜索引擎来说是个不好的事儿。估计未来几个月内从搜索引擎来的流量会小很多,不过本来就没多少,而且这样渠道来的访客也没啥意义。博客换程序和搬家差不多,自从正式开搏以后我还是头一次这么折腾,之前一直是能用就用。新的模板、新的后台,这些都让我能更安心的写东西了,用个wp可能对一些朋友来说没什么大不了的,但对久被自己折磨的我来说可以算是个非常幸福的事情了。同时,换wp的过程中对sql语句又了有一点了解,其实这事儿真的是挺简单的。哈!

从老表将对应字段导入新表内:
insert 新数据库名.`新表名` (`字段1`,`字段2`) select `字段1`,`字段2` from 老数据库名.`老表名`;

更新某字段的内容:
update 表名 set 字段名=”新的内容”

按条件替换(转换分类时用的):
update 表名 set 字段名=”新值” where 字段名=”老值”

更新替换字段内的内容(如ubb标签替换成html标签”):
update 数据库名.`表名` set `字段名` = REPLACE(`字段名`, ‘老内容’, ‘新内容’) ;

上线的过程我还整的挺正式:

1,备份数据,备份原来的配置文件,随时准备回滚。

2,上传新文件、安装和导入。

3,线上冒烟测试,包括rss输出。

认领鲜果:

BANG23C91EF586A93967710E52D7XIANGUO

分类: 光荣梦想

标签: , , ,

3 评论

  1. SUN说道:

    祝贺上线成功

  2. DavidYin说道:

    2009,Change。
    页面底部的footer有乱码。

  3. suchasplus说道:

    Con!
    我从MT迁移到WP之后又搬回去了
    我还不信整不了一个发布系统?

评论

个人介绍

大徐 / cnxjj
大徐

微信订阅号:趣味方法学
微信订阅号:趣味方法学
更多