eygle.com完成建站以来最大的一次迁移

昨晚对网站( eygle.com )进行了建站以来最大的一次迁移。 迁移的主要内容包括: 1.将数据库由Berkeley DB转为Mysql 转换原因:Berkeley DB的管理和操作困难,自己不熟悉;Mysql的管理和维护就容易得多,也可以很容易的进行一些小开发以完善站点功能. 最初选择Berkeley DB是因为配置简单,但是不支持SQL,管理实在麻烦;而且数据量大了之后,总觉得更新性能很差;虽然现在Berkeley DB已经属于Oracle了,但是还是选择换掉它。 2.将网站字符集由GB2312转换为UTF-8 转换原因:建站之初选择了GB2312字符集,可是这个字符集和其他网站进行数据交互时就出现了问题,乱码是最头痛的,这次痛下决心,将网站转为UTF-8编码。 转换主要有以下几个注意事项: 1.MTEntryBasename 的问题 由于MT的导出功能不导出BaseName属性,缺省的会丢失所有自定义的Basename,参考DCBA的修正解决了这个问题。 需要修改的文件是: $MT_HOME/lib/MT/ImportExport.pm 以下红色部分代码为修改部分:
} elsif ($key eq 'TITLE') {
    $entry->title($val);
} elsif ($key eq 'BASENAME') {
    $entry->basename($val);
} elsif ($key eq 'DATE') {
第二处:
TITLE: <$MTEntryTitle strip_linefeeds="1"$>
BASENAME: <$MTEntryBasename strip_linefeeds="1"$>
STATUS: <$MTEntryStatus strip_linefeeds="1"$>
2.MT的Tag导出问题 同样,MT的导出功能不能导出Tag,这也是一个麻烦事,参考路杨的Hack也解决了这个问题。 仍然是修改: $MT_HOME/lib/MT/ImportExport.pm 以下红色部分代码为修改部分:
AUTHOR: <$MTEntryAuthor strip_linefeeds="1"$>
TITLE: <$MTEntryTitle strip_linefeeds="1"$>
STATUS: <$MTEntryStatus strip_linefeeds="1"$>
ALLOW COMMENTS: <$MTEntryFlag flag="allow_comments"$>
CONVERT BREAKS: <$MTEntryFlag flag="convert_breaks"$>
ALLOW PINGS: <$MTEntryFlag flag="allow_pings"$>
<MTEntryIfTagged>
Tags: <MTEntryTags><$MTTagName$>,</MTEntryTags>
</MTEntryIfTagged>
第二处修改为:
elsif ($key eq 'TITLE') {    $entry->title($val);  }
elsif ($key eq 'Tags') {
    if ($val)
            {
              $cb->(MT->translate("Find tags ('[_1]')...\n", $val));
               my @tagnames = split(',',$val);
               $entry->add_tags(@tagnames);
               }
}
现在MT3.3的导出功能是比较简单的,在MT的官方网站上看了一下,官方的说法是,目前正准备开发一个全新的导入导出模块,提供更为强大的功能,所以暂时不对现有的功能进行修正了。 接下来整个转换就比较顺利了,现在整个网站的后台是基于MySQL数据库的了。 -The End-
此条目发表在 未分类 分类目录。将固定链接加入收藏夹。

评论功能已关闭。