Movable Type 3.1登場でアップグレード
MT3.1がついに登場。新しモノ好きの俺は早速アップグレードしてみた。
アップグレードの方法は基本的には今までと同様。
まず、ファイルをMTのホームページからダウンロードしてくる。今回はMT3.01Dからのアップグレードなので、アップグレードVersionをダウンロード。適当なところで展開する。
展開したファイルを、MTのあるところにアップロードする。つまり上書きする。PHPとか、今までにないフォルダもあるので、それは$MTの下にそのままアップロード。images/とmt.jsとstyle.cssはStaticWebPathのところにアップロードする。
cgiファイルはパーミッションを755に変更する。そうしたら、「mt-upgrade31.cgi」を実行する。ここで問題発生!うまくいかないのだ。エラーがでる。具体的には次のようなエラー。
An error occurred while upgrading the schema:
Can't locate object method "load" via package "MT::Template" (perhaps you forgot to load "MT::Template"?) at mt-upgrade31.cgi line 263.
なんじゃこりゃ?である。ファイル類を再度アスキーモードでアップロードしてみたところで、何度やってもこのエラーがでる。MTのUser Forumを見ると、同様のエラーが出る人がいるようである。しばらくして再度Forumを見てるとそこには解決した人がッ!!
解決策は以下のとおり(抜粋も含む)。
mt-upgrade31.cgiのなかで、MT::Templateを扱っている場所は次の3ヶ所。
263行目
$tmpl->build_dynamic(0);
$tmpl->save();
}
278行目
my $bootstrap_template =
MT::Template->count({name => 'Dynamic Site Bootstrapper'});
293行目
my $obj = MT::Template->new;
これら三つを比べてみると…。263行目だけ「require MT::Template;」が抜けている。ということで、263行目を次のように書き換える。
foreach my $tmpl (MT::Template->load()) {
$tmpl->build_dynamic(0);
$tmpl->save();
}
これで解決!もう一度「mt-upgrade31.cgi」を実行してみるとちゃんと成功するではないか。
Done upgrading your schema! All went well.
以上でアップグレードは完了。俺は英語版のままで使っているので、日本語化に関する設定はやらない。
さて、使い心地はというと。これからである。ぱっと見はほとんど変わらないが、いくつか機能が追加されている模様。
・テンプレートごとに、Dynamic Pageの設定ができる
・Scheduled Postingができる(エントリー投稿のところで「Future」という項目が増えている。Cronjobが必要)
・サブカテゴリーが使える
などであろうか。これから徐々に使っていくつもり。

コメントする
(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)