Movable Type 3 から Movable Type 4 のアップグレードにおける注意事項(その2)
「Movable Type 3 から Movable Type 4 のアップグレードにおける注意事項」で不足していた項目を、このエントリーに掲載しておきます。1~6までは前の記事を参照ください。
7.サブカテゴリーリスト用テンプレートタグ
MT3 では MTSubCategories タグで表示されていたサブカテゴリーリストが、MT4 のメインページやカテゴリーアーカイブ以外のアーカイブで表示されなくなります。
カテゴリーリストを表示する場合は下のように、MTSubCategories タグを MTTopLevelCategories に書き換えてください。
変更前
<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTSubCategories>
変更後
<MTTopLevelCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse max_depth="3">
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTTopLevelCategories>
8.ウェブページのテンプレート
MT3 からのアップグレードでは、ウェブページ用のテンプレートが存在しません(アーカイブテンプレートは MT3 のテンプレート構造を引き継ぐため)。
注:MT4.0 ベータの時に試した情報なので、誤っていたらご指摘ください。
ウェブページのテンプレートを作成するには、「デザイン」→「テンプレート」→「アーカイブテンプレート」の「アーカイブテンプレートを作成」の右にある「ウェブページ」をクリック。

テンプレートはエントリーアーカイブを元に作成すると良いでしょう。そして、ブログ記事用のテンプレートタグを、ウェブページ用のテンプレートタグにリネームします。
テンプレートタグのリネームの主な対応は下記の通りです。
| ブログ記事 | ウェブページ |
|---|---|
| MTEntryID | MTPageID |
| MTEntryTitle | MTPageTitle |
| MTEntryBody | MTPageBody |
| MTEntryMore | MTPageMore |
その他のタグも、「Entry」を「Page」に変更すれば良いと思います。
コメント・トラックバックのテンプレートタグはそのまま(コメントは前の記事を参考にしてMT4対応に修正が必要)で大丈夫ですが、利用しないのであれば削除しても良いでしょう。
関連記事
Movable Type 3 から Movable Type 4 のアップグレードにおける注意事項
Movable Type 3 から Movable Type 4 のアップグレードでは、注意すべき点がいくつかあります。本エントリーで現在分かっている項目をまとめてみましたので、参考になれば幸いです。
1.JavaScript(mt.js) 作成
MT4 ではコメントフォーム制御用の mt.js というインデックステンプレートが必要になりますが、アップグレードではこのテンプレートが生成されないようです。
対策として、下記の手順で mt.js を取得してください。
1.1 インデックステンプレートを作成
- 名前:JavaScript
- テンプレートの種類:JavaScript (javascript)
- 出力ファイル名:mt.js
- 再構築オプション:チェック
- 内容:空のまま
で保存。
1.2 テンプレートの初期化
Template Backup and Refresh プラグインを使って、作成した JavaScript テンプレートを初期化します。これで mt.js のコードを取得することができます。
2.コメントフォーム
MT3 のコメントフォームでは、認証機能や CAPTCHA 等、MT4 の全ての機能を利用することができません。また1項で作成した JavaScript を利用するためにも、下記のエントリーを参考に、MT4 用の変更を行ってください。
3.プラグイン
アップグレードで MT4 に対応していないプラグインを利用していると、再構築でエラーになる可能性があります。
拡張タグのプラグインは、無効である旨のエラーメッセージが表示されると思いますので、
- エラーとなるテンプレートタグをテンプレートから外す
- プラグインを MT4 対応のものにアップグレードする
といった対処を行ってください。
4.システムテンプレート
システムテンプレートはアップグレード対象にならないようです。
ということで、元ブログのテンプレートを手動でコピーしてください。なお、コメント完了テンプレートについては MT3 と制御が異なっているので、そのまま使うことはできないと思われます(これについては別途エントリーしま
す)。
5.「認証なしコメント」を受け付ける
アップグレードによる管理情報の引継ぎ状況は未確認ですが、ちょっと分かりにくいのがコメント受信設定です。
認証なしコメントを受け付ける設定は管理画面の「設定」→「コメント」ではなく、「設定」→「登録 / 認証」にあります。
6.インポート・エクスポート機能を利用したデータ引継ぎ
6.1 タグ・出力ファイル名
インポート・エクスポート機能を利用したブログ記事のデータ引継ぎでは、タグや出力ファイル名の情報が引き継がれません。
これを引き継ぐためには、MT3 側のインデックステンプレートにエクスポートデータを作成するためのテンプレートを作り、これによって生成されたデータを MT4 のブログにインポートすると良いでしょう。
- JunnamaOnline (Mirror):MT3→MT4へタグやbasenameを引き継いで(インポート&エクスポートで)簡単に移行する方法。
- Movable Type のブログ記事インポートフォーマット(一番最後にテンプレートが掲載されています)
6.2 サブカテゴリー
インポート・エクスポート機能を利用したブログ記事のデータ引継ぎでは、サブカテゴリー情報が引き継がれません。
また、親カテゴリーが異なるサブカテゴリーに同名のサブカテゴリーが存在すると、ひとつのカテゴリーとして扱われてしまいます。
たとえば、下記のようなカテゴリー構成の場合、
AAA
└ CCC
BBB
└ CCC
カテゴリー「CCC」はひとつのカテゴリーにまとめられてしまいます。
同名のカテゴリーがまとめられてしまう問題を回避するには、エクスポート前に、重複するサブカテゴリー名のみ、異なるカテゴリー名にしておく必要があります。
6.3 その他
ブログ記事本文に連続したハイフンが含まれていると、適正でないフォーマットのエクスポートデータが生成され、結果的に正常にインポートできない可能性がありますので、MT3→MT4へタグやbasenameを引き継いで(インポート&エクスポートで)簡単に移行する方法。にあるプラグインを利用すると良いでしょう。
なお、エクスポートデータの改行文字が \n(LF) でない場合も正常にインポートできません。生成したエクスポートデータを Windows の任意のエディタで編集する場合、改行文字が \r\n(CR/LF)にならないよう、注意しましょう。
関連記事
Movable Type 3 から Movable Type 4 へのアップグレード方法
Movable Type 4 がリリースされましたので、Movable Type 3 からのアップグレード方法を紹介致します。
アップグレードはこれまでの MT3.x → MT3.x の方法と若干異なっています。おおざっぱに申し上げますと、データベースと構成ファイル(mt-config.cgi)以外、全て潔く削除します。
以下、Movable Type 4 のドキュメントを参考に、順を追って説明します。メジャーバージョンアップということで事前準備が色々ありますので、作業内容をしっかり把握してから実施してください。
また本エントリーはアップグレードの正常性を100%保証するものではありませんので、ご自身の責任で行ってください。
注意事項
- MT3管理画面系のプラグインはMT4ではエラーになります。
- MT3のMTタグ拡張プラグインで一部利用できないものがあります(
MTPaginate/MTCollate/MTTagInvoke等)。 - インデックステンプレート等で MTSubCategories タグは動作しません(カテゴリー・アーカイブのみで有効)
1.バックアップの取得
下記のバックアップを取得(FTPツールでダウンロード)します。
- アプリケーションディレクトリ(mt.cgi があるディレクトリ)
- スタティックディレクトリ(mt-static)
- ブログディレクトリ(index.html があるディレクトリ)
- データベースディレクトリ(SQLite / Berkeley DBを利用している場合のみ)
アップグレード作業では、ダウンロードしたアプリケーションディレクトリの中にある mt-config.cgi と(サーバ上の)データベースディレクトリ(SQLite / Berkeley DBを利用している場合のみ)を使用します。
注:4項にも記していますが、FTPツールでダウンロードする手段の他、アプリケーションディレクトリとスタティックディレクトリのディレクトリを変更するだけでもいいかもしれません(その場合は3項までの作業を先に実施してください)。ただしこの場合も、データベースディレクトリ(SQLite / Berkeley DBを利用している場合のみ)・ブログディレクトリはローカルPCにダウンロードしてください。
2.データベースのバックアップ
データベースのバックアップを取得します。データベースのバックアップがあれば、アップグレードに失敗しても全てを復旧できます。
MySQL や PostgreSQL を利用している場合、レンタルサーバで提供されているバックアップ方法やシェルを利用したバックアップを行ないます。
「MySQL + phpMyAdmin によるバックアップ」も参考にしてください。
3.エントリー・コメント・トラックバックのエクスポート
データベースのバックアップが分からない場合、エクスポート機能を利用して、エントリー・コメント・トラックバックをバックアップします。
この方法では、テンプレートやログ等、全ての情報は取得できませんが、エントリー・コメント・トラックバック・カテゴリーの基本的な情報を取得できます(サブカテゴリは反映されません)。
操作方法は管理画面より「読み込み/書き出し」をクリックし、「エントリーの書き出し」をクリック。後は「XXからエントリーを書き出す」をクリックすればファイルのダウンロードに進みます。

2項が実施できない&テンプレートをバックアップしたい場合は、テンプレートの内容をテキストファイルに保存するか、「「このテンプレートにリンクするファイル」の使い方 for Movable Type」を使ってください。
4.旧バージョンのデータ削除
バックアップを作成した後、FTP ツールで、アプリケーションディレクトリとスタティックディレクトリの内容を空にします。ドキュメントによると「以前のバージョンとの混在を防ぐため」のようです。
ドキュメントにしたがって潔く削除してもいいのですが、自信がない・恐い方は、アプリケーションディレクトリとスタティックディレクトリのディレクトリ名を変更するだけでもいいのではないかと思います。変更した場合は、前と同じ名前の空のディレクトリを作っておいてください。
スタティックディレクトリがアプリケーションディレクトリ配下にある場合、つまり Movable Type のディレクトリ構成をそのまま使っている場合は、空のアプリケーションディレクトリのみ作成しておきましょう。
注:ブログディレクトリとデータベースディレクトリ(SQLite / Berkeley DBを利用している場合のみ)は削除、あるいはリネームしないでください。
5.Movable Type 4 のアップロード
予めダウンロードしておいた Movable Type 4 を以前と同じように、アプリケーションディレクトリにアップロードします。
6.構成ファイル (mt-config.cgi) の復旧
1項のバックアップから、構成ファイル (mt-config.cgi) を元の位置にアップロードします。
旧バージョンで mt-config.cgi が存在せず、mt.cfg の場合は、mt-config.cgi にリネームしたものをアップロードします。また、MySQL や PostgreSQL 利用の場合、データベースパスワード等が含まれる mt-db-pass.cgi ファイルの内容は mt-config.cgi に反映させてください。
また、MT3.3 以前のバージョンからアップグレードする場合、「3.3の新機能の1つであるログ・フィード機能で、検索の結果のフィードを出力するために、mt-config.cgi に以下を追記してください。」とドキュメントに記されています。
AltTemplate feed results_feed.tmpl
7.カスタマイズの反映 (オプション)
「default_templatesディレクトリやsearch_templatesディレクトリ内のテンプレートをカスタマイズしていた場合は、ローカル側に作成したバックアップから、それらをアップロードします。」とドキュメントに書かれています。
8.mt.cgi にアクセスしてアップグレード
これでアップグレードが開始します。ここでは MT-3.35-ja からのアップグレードした実績で説明します。
「アップグレード開始」をクリック。

ユーザー名・パスワードを入力。

アップグレードが開始します。

アップグレードが完了しました。「Movable Type に戻る」をクリック。

これで MT4 のダッシュボードが表示されれば完了です。

一定期間運営して問題がないようでしたら、4項をディレクトリ名変更作戦で作業を進めた方は、旧ディレクトリをFTPツールで削除してください。
ちなみに MT3.35-ja のアプリケーションディレクトリ・スタティックディレクトリの内容が残った状態から上書きしても、アップグレードは成功しました。参考まで。
2007.08.09
注意事項を追記しました。
2007.08.09
プラグインから MTPaginate を削除しました。
2007.08.11
注意事項に MTSubCategories を追加しました。

