从Emlog到Typecho的博客主体数据迁移

xinxin8816 2018年12月23日

前言

一个月以前,正想写一篇博文。却发现在EMLOG后台无论如何也不能完成发布操作。经过一系列检查发现,不知从什么时候开始,EMLOG已经不兼容PHP7了。时光荏苒,岁月如梭。EMLOG已经三四年没有更新了,早已跟不上这个时代。虽然有些舍不得,经过多番思考无奈,只好给博客搬家了。在选择程序时候,着重考虑轻盈易管理和后期持续支持两个方面,于是决定转战Typecho。

但是原有的EMLOG的所有内容也不能舍弃啊,毕竟是自己的一番心血。在Typecho官方Doc有教程,是一个Python脚本,似乎不兼容Typecho1.1,不过简单看了一下,似乎问题也不大,大不了出了问题再处理。二话不说,准备环境开始搬家。

准备

为了不影响现有数据,我在虚拟机里搭建环境

  1. Windows XP,PHPStudy搭建本机PHP+Mysql,Python 2.7.13 32位
  2. EMLOG原有数据库
  3. Typecho程序包
  4. Emlog2typecho脚本

步骤

  1. 将原有数据库导入Mysql
  2. 安装Typecho
  3. Python连接Mysql需要用MySQL-python,悲剧的是pip库并没有32位适用。(即 pip install MySQL-python 无法自动安装)不慌,加州大学的镜像里有 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 手动安装即可
  4. 修改脚本配置开始转移。

好,吃完午饭回来,2M多的数据库整整跑了一个小时。发现报错,似乎是评论没导入完全。查了下官方Doc文档,对比了下数据库,发现问题在于Typecho1.1数据库结构稍有变化,和脚本里写的有出入。改脚本很简单,但这个脚本的效率太低了所以另辟蹊径导入评论。
刚看了下文档对Typecho的数据库结构有所了解了,直接通过SQL命令按列迁移评论数据。
insert into typecho.typecho_comments (coid,cid,created,author,mail,url,ip,text)
select cid,gid,date,poster,mail,url,ip,comment from emlog.emlog_comment

后话

至此,数据库迁移部分基本结束。Emlog是没有缩略名的,所以重写地址不能用类WP形式。另外文档分类也要自己再分配。临近期末,再说了。

expand_less