eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 恭王府赏福字碑 | Blog首页 | 使用Perl连接Mysql数据库 »

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-


历史上的今天...
    >> 2012-12-12文章:
    >> 2008-12-12文章:
    >> 2005-12-12文章:
           Definer and Invoker Rights
    >> 2004-12-12文章:

无觅

By eygle on 2006-12-12 10:36 | Comments (7) | Web | 1253 |

7 Comments

就是我的网站也被搬到MySQL罗 -_-

难怪昨天晚上乱码呢

晕,还真有人看到乱码了:D

oracle更熟,该用oracle嘛:)

Oracle太庞大了!

mysql好用


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com