MovableType 4系に移行

いろいろバタバタしていてエントリーをほとんど書かないうちに、MovableTypeのバージョンが、3.32 → 3.33 → 3.34 → 4.00 と上がってしまったので、3.34から、4.00にバージョンアップを行ってみた。これまでのマイナーバージョンアップでは単純にCGIの上書き(うちのポリシーでは新バージョンを入れてシンボリックリンクを張り替える)で対応できたのだが、どうも4.00へのメジャーバージョンアップは単純ではなさそうだ・・・

今回はメジャーバージョンアップと言うことで、現状のDBデータから単純に載せ替えたテスト環境を生成してみたが、テンプレート周りがかなり変わっているようで、デザイン関係をどう変更したらいい物かさっぱり分からなくなってしまったため、そのままアップデートすることは断念した。しばらくバージョンアップしないのも良いかと思ったのだが、なかなか時間が取れないので移行することにした。おそらくテンプレートをそのまま移行して、MovableType3系のCSSを使えば良いのであろうが、それを試す時間はなさそう。(実際エントリ書いてないんだから。)
そのため今回のアップデートはテンプレートも新しくするために記事・コメントをエクスポートして、新しい環境をインストールしてから、そのままインポートすることにした。僕が手を入れたのはいまのところLiteBoxを使うようにするくらいな物なので、クリーンな環境に入れ直しと言う作業自身はエントリ数も少ないこともあり、想像以上にすんなり進めることができた。バージョンアップすることで考えられる個人的な利点は、

  • 素のままで現状の3.34よりUI周りが使いやすくなっているなと思うこと(Ajaxってやつか・・・)
  • 今までメイン・アーカイブに分散していた記述の共通部分が抽出されてわかりやすくなったこと(要はモジュール化されたってことだろう)
  • 来るべきGPL版はおそらく4系になるだろうから、合わせておいた方が良かろうと思うこと
    というところか。あまり重要ではないような気もするが、今後の保守も考えると移行すべきなのだろう。実際の作業の流れは以下の手順でおこなった。
  1. 現状のバックアップ(DB、MovableTypeのCGI、公開しているBlogのディレクトリ)
  2. エントリ・コメントのエクスポート
  3. 写真の整理(今まで無計画に保存してきたので、今回一本化を図る。次回のバージョンアップもしやすいようにディレクトリを集約した。実際にはバージョンアップには関係ない。)
  4. 写真をのぞいた旧バージョンのファイル関係をすべて消去
  5. MovableType4をインストール(ファイルのグループ、パーミッションの書き換え、perlのパスの設定、設定ファイルの記述)
  6. 旧環境のエントリ・コメントをインポート
  7. LiteBoxのインストール(Blog公開ディレクトリの下にliteboxというディレクトリに集約。CSSとjsを適当に書き換え)
  8. LiteBoxを読み込むようにテンプレートを修正(以下で説明)
    という感じに進めた。眠い頭でも1時間程度の作業で完了である。(午前5時くらいに急に思い立って始めたため。)
    LiteBox関係の設定であるが、テンプレートで行うことは最小限にすると言うことで、「小粋空間: Litebox 1.0 をブログに適用する」と「小粋空間: Litebox 1.0 の rel 属性を自動付与する」を参考にlitebox.cssとlitebox-1.0.jsを変更しておく。テンプレートの変更箇所は、モジュールテンプレートの「ヘッダ」に以下のLiteBox関係の設定を追加(head要素直下の適当な場所に挿入する。)

次にインデックステンプレートの、「メインページ」「アーカイブインデックス」アーカイブテンプレートの「ブログ記事リスト」に以下の変数を設定(body要素にbody_onload属性を付ける。)

アーカイブテンプレートの「ブログ記事」・「ウェブページ」に以下の変数を設定(これもbody要素にbody_onload属性を付ける。すでに属性が設定されているのでこのようになる。)

ざっとこんな感じで、移行は完了。ちょっと複雑にはなったがモジュール化の恩恵で理解しやすくなったので少しずつカスタマイズしていこうと考えている。