【Movable Type】5.0 → 5.02 へのアップグレード


今まで面倒で放置していたのだが、Movable Type を 5.0 から 5.02 にアップグレードしてみた。

Movable Type 5.0 から 5.0x へのアップグレード
http://www.movabletype.jp/documentation/mt5/upgrade/mt5.html

バックアップ

まずは何は無くともバックアップ。

$ /usr/local/mysql/bin/mysqldump -a -uroot -p mt | gzip > mt_backup_2010080201.gz
Enter password:

これで、データベースの中身がカレントディレクトリに mt_backup_2010080201.gz というファイル名でバックアップされる。

$ cd /Users/delphinus/Sites
$ mv mt mt.bak
$ mv mt-static mt-static.bak

MT を公開しているディレクトリもバックアップしておく。

MT 最新版のインストール

予めダウンロードしておいた最新版の ZIP ファイルを解凍し、以前のディレクトリから必要なものをコピーする。

$ unzip MT-5.02-ja.zip
$ mv MT-5.02-ja mt
$ mv mt/mt-static .
$ cp mt.bak/mt-config.cgi mt/
$ cp -fR mt.bak/themes/テーマ名 mt/themes/
$ cp -fR mt.bak/plugins/プラグイン名 mt/plugins/
$ cp -fR mt-static.bak/support mt-static/
$ cp -fR mt-static.bak/plugins/プラグイン名 mt-static/plugins/

あとは上に挙げたリンクにもあるとおり、ブラウザから /mt/mt.cgi にアクセスすれば完成……のはずが、ちょっとしたエラーが起こった。データベースをアップグレードできないのだ。

データベース構造を元に戻す

以前、記事のタイトルや本文に JIS 第三、第四水準など、Unicode の BMP(基本多言語面)外の文字を使うときにテーブル構造をいじっていた。アップグレードの前にいったん元の設定に戻そう。

【MovableType, MySQL】記事中に BMP 外の文字を使う
http://blog.remora.cx/2010/07/use-non-bmp-characters-in-movabletype.html

$ /usr/local/mysql/bin/mysql -uroot -p mt
Enter password:

次の SQL で設定の一部を元に戻す。

alter table mt_entry
    modify `entry_atom_id` varchar(255) character set utf8 default null
    ,modify `entry_basename` varchar(255) character set utf8 default null
    ,modify `entry_class` varchar(255) character set utf8 default 'entry'
    ,modify `entry_title` varchar(255) character set utf8 default null
;

ただしこの場合、記事のタイトルやファイル名に BMP 外の文字を使っているとそのデータが消えてしまう。予め確認しておこう。

ちなみに、再び BMP 外の文字に対応させるときは次の SQL を使う。

alter table mt_entry
    modify `entry_atom_id` varchar(191) character set utf8mb4 default null
    ,modify `entry_basename` varchar(191) character set utf8mb4 default null
    ,modify `entry_class` varchar(191) character set utf8mb4 default 'entry'
    ,modify `entry_title` varchar(191) character set utf8mb4 default null
;

もう一度ブラウザから /mt/mt.cgi にアクセスすると問題なくアップグレードが完了した。

Captcha 画像への対応

以上でアップグレードは完了したのだが、Image::Magick のバージョンにもよるのか、相変わらず Captcha 画像が使えない。以前と同じように Captcha.pm を修正して対応した。

【MovableType】Captcha画像の生成に異様な時間がかかる件について
http://blog.remora.cx/2010/03/movabletype-captcha-lag.html

コメントを残す