MT3.35からMT4.2rc2へ。その2

20080629_01.jpg
MT4からはブログに掲載する画像や外部ファイルなどの管理も行えます。ちょっと重いけどね。笑

MT3.xからMT4.xへ移行する際のポイント。

MovableTypeのメリットは色々あるけれど、差分ファイルをシステムファイルに上書きすれば、常に最新のシステムを使えるというのは大きなメリットであると思う。と同時に、あまりシステムに詳しく無い人間からしてみると、まだまだこうしたアップグレード作業は難しいと思うし、作業が複雑で敷居が高いのがデメリットにもなりうるところですね。

自分もシステムに詳しい人間ではないので、元々、こうした作業は苦手なのですが、毎度のことながら、作業が終わってから間違いがあることに気がつく典型的な先走り型の人間(プラモデルを説明書を読まず組み立ててダメにする系の人間です。笑)なので、今回のアップグレードはそんな間違いをしないためにも、いくつかの作業を段階をふんで行うことにしました。(もちろん、今は慎重派ですよ〜。多分。笑)

詳しいアップグレードの方法は「Movable Type 4 ドキュメント」を見ることをオススメします。特にプラグインなどを多用している場合は、そのプラグインがMT4に対応していない、もしくはもう必要ない場合もありますので、そのあたりの確認も含め、今回は上書きアップグレードではなく、新規インストールすることで、新旧システムを存在させながら、移行させるという方法をとってみました。

今回導入したMT4.2rc2はMovable Type Open Source(MTOS)が配布しているもので、実はカスタムフィールド(自分で入力項目を増やしたりできる)機能が付いておりません。カスタムフィールドを使う必要のある方は、MT4.1をダウンロードしてください。

まずは、バックアップをとる。

  1. FTPソフトなどで、今のブログがあるディレクトリ、CGIがあるディレクトリなどWebのデータを丸ごとバックアップします。
  2. エントリのバックアップ(書き出し)は、MT3.xを使用している場合、MT標準の書き出し機能はタグなどの情報が出力されませんので使いません。MT4に最適化されたインポート用テキストデータをテンプレートを新たに作成して出力します。詳しい方法は「Movable Type のブログ記事インポートフォーマット 」を参照。
  3. また、エントリ数が大量にある場合、MT4にてインポートする時にエラーを起こす可能性が高いので、分割して作成することをオススメします。だいたい50エントリ〜100エントリ単位で作っておくと失敗が少ないようです。(lastn属性とoffset属性を上手く利用して)

上書きインストール(アップグレード)はしない。

  1. 既存のシステム(MT3.xx系)から上書きアップグレードするのに不安な場合は、同じ場所に上書きせずに、同じcgiフォルダの中に新しくMT4を入れるフォルダを作り、新規インストールする。
  2. また、現在公開されているブログディレクトリとは別のテスト用ディレクトリを一時的に用意し、そこに公開するように設定すると、現在のブログをいじることなく、安心して作業が出来ます。

MT4での準備編。

  1. いきなりエントリはインポートしない。動作確認用に数エントリを作成しておくと便利。
  2. デザインをカスタマイズしている人は、テンプレートやモジュール、PHPパーツを作っていきます。
  3. プラグインはMT3までしか対応していないものもありますので、確認が必要ですが、MT4からは使えるテンプレートタグが大幅に増えたので、プラグインに頼らずとも対応できる箇所は修正していくのが良いと思います。
  4. テンプレートなどの編集が全て終わったら、ちゃんと動作しているか確認。特にアーカイブテンプレートをいじっている人は、コメントやその他、MTシステムに依存する箇所がちゃんと動作するか確認しておきます。
  5. Ajaxなどを使っている場合は、それらの機能もこの段階で装備して確認しておくと便利です。

補足:カテゴリを任意に並べたい。

カテゴリを任意に並び替えたい場合は、従来は「MovableTypeのカテゴリーソートに使える数字置換プラグイン」という便利なプラグインで対応することもできましたが、MT4には対応していなかったりします。こんなときは「MTSubCategories を使ってカテゴリーを好きな順番に並べる」の方法をオススメします。

補足:ファイルのアップロード先を常に指定しておきたい。

MTでは写真やファイルなどをアップロードする時にアップロード先を指定出来るようになっていますが、例えばアップロード先の「image」フォルダに格納させるといった予めアップロード先が決まっている場合は、毎回毎回「image」を入力するのも面倒くさいですよね。そんなときは「MT4.1 でファイルアップロード先を指定する方法」を参照されると良いでしょう。とても便利ですよ。

MT4にエントリをインポートする直前の確認事項。

  1. 全てのテンプレートの編集作業が終わったら、最後にアーカイブマッピングを確認します。これは、ブログ記事を保存するときのファイルネーム、及びディレクトリ構造を決定づけるものですので、とても重要です。

テンプレート作業が終わったら、「ブログ記事」「ブログ記事リスト」「月別記事リスト」などアーカイブテンプレートのアーカイブマッピングを確認しておきましょう。旧ブログのエントリ内容をそのまま引き継ぎたい場合は、これらの設定を旧ブログと同じ状態で保存してもらうようにしないと、同じエントリなのにURLが違うという状態になり、検索エンジンにひっかかっていた記事も読めなくなってしまうのと同じになります。

具体的には、各アーカイブテンプレートの編集画面下部にアーカイブマッピングを新規に作成するか、「yyyy/mm/dd/entry_basename.php」といった感じで表示されているドロップダウン項目が表示されているかと思いますので、今までのブログで表示されてきた方式を確認し、同じものを選べば大丈夫。

細かいことですが、「yyyy/mm/dd/entry_basename.php」と「yyyy/mm/dd/entry-basename.php」といったハイフンとアンダーバーの違いにも気をつけましょう。

MT4にエントリをインポートする。

  1. エントリをインポートしていきます。分割している場合は、その全てのファイルをインポートします。もしも、途中でインポートがストップし、しばらく待っても反応がない場合は、ブログ記事一覧に戻って、そのファイルで読み込まれていたエントリ分を全て削除し、最初からやり直します。

全て無事にインポート出来たら、一度再構築をしてみます。テストディレクトリ内で行っているので、現在のブログには影響は出ません。ここで閲覧、コメント、トラックバック等の基本的な動作に問題が無ければ、ブログの公開設定で、現在のブログと同じディレクトリを指定して、再構築を行います。(ライセンスの問題上、MT4での稼働が無事に確認出来たら、MT3は削除します。)

ふぅ〜。長かった。笑 これで、無事にアップグレード完了です。ただ、コメント機能の部分は当初は自分で組み立てていたのですが、コメント出来ないトラブルにあってしまったので、結局、モジュールをそのまま利用しています。笑 作業自体はかなりややこしいですが、一つずつ着実にアップグレードしていけば問題なく移行出来ると思います。参考になれば幸いです。

コメントする