Movable Type 4 におけるインポート・エクスポート機能の改善

Movable Type 4 におけるインポート・エクスポート機能の改善

Posted at August 24,2007 2:30 AM
Tag:[Export, Import, MovableType]

Movable Type 4 のインポート・エクスポート機能では、新たに下記のデータが引き継がれるようになりました。

  • ファイル名(BASENAME)
  • タグ(TAGS)

特にファイル名が引き継がれるようになったのは大きなメリットです。

1.Movable Type 3.x での問題

Movable Type 3.x でのエクスポート(書き出し)機能ではファイル名が書き出されないため、インポート(読み込み)時にエントリー・アーカイブ(MT4ではブログ記事アーカイブ)のファイル名が付与され直されます。

デフォルトのアーカイブファイル名は、エントリータイトルにしたがってファイル名を付与することになっているため、エントリータイトルが全て日本語の場合は post.html、post_1.html、post_2.html … というファイル名が付与されます。

また、一度公開したエントリーを削除し、その後新たに公開したエントリーには削除したファイル名が付与されます。例えば、post_3.html までファイルがある状態で、post_2.html を削除すると、次の(タイトルが全て日本語の)エントリーに付与されるファイル名は post_4.html ではなく、post_2.html となります。

このような運用状態で「エクスポート(書き出し)→インポート(読み込み)」を実施すると、過去の(タイトルが全て日本語の)エントリーに対し、post.html、post_1.html、post_2.html …と付与されるため、バックアップ前と同一のファイル名を付与できないという問題がありました。

そういう訳で、Movable Type 3.x では「ファイル名にはタイムスタンプを利用する」という手法が一般的だった訳です(DBのバックアップを利用するのであればこのような考慮は不要)。

関連記事:
エントリー・アーカイブファイル名の不具合を解消する

2.Movable Type 4 でのファイル名

ファイル名がインポート・エクスポート機能で引き継がれるようになったことと、それ以前にブログのバックアップ機能が盛り込まれたので、Movable Type 4 ではタイムスタンプを利用する作戦は不要になり、任意のファイル名を自由に付与できるようになります。

余談ですが、Movable Type 4 では、ブログ自体のバックアップはバックアップ機能を利用し、インポート・エクスポート機能は異なるブログ間の移行用、というのが本来となるでしょう。
とはいえ、エントリーデータはバックアップとあわせて周期的にエクスポートしておいた方が安全かもしれません。

3.Movable Type 4 でのエクスポートファイルフォーマット

参考までに、Movable Type 4 でエクスポートされる1つのブログ記事のフォーマットは以下のようになります。青色部分が新たに追加されたフォーマット(ファイル名/タグ)です。

フォーマット(CONVERT BREAKS)も種別が増えています。サブカテゴリーは残念ながら引き継がれません。

AUTHOR: hogehoge
TITLE: Movable Type 4.0 へようこそ!
BASENAME: movable_type_40
STATUS: Publish
ALLOW COMMENTS: 0
CONVERT BREAKS: richtext
ALLOW PINGS: 0
PRIMARY CATEGORY: カスタマイズ
CATEGORY: movable type
CATEGORY: カスタマイズ
DATE: 08/09/2007 12:41:09 AM
TAGS: 4.0,mt
-----
BODY:
このブログ記事は、Movable Type 4のインストール完了時に、システムによって自動的に作成されたブログ記事です。 新しくなったMT4の管理画面で、早速ブログを更新してみましょう。
-----
EXTENDED BODY:
 
-----
EXCERPT:
 
-----
KEYWORDS:
 
-----
 
COMMENT:
AUTHOR: mtbook
EMAIL: 
IP: 
URL: 
DATE: 08/09/2007 12:41:09 AM
このコメントは、Movable Type のインストール完了時に、システムによって自動的に投稿されたコメントです。MT のブログに投稿されたコメントが、どのように表示されるのかを、ご確認いただけます。
-----

4.MT3 → MT4 の移行でエクスポート・インポートを利用する場合

MT3 → MT4 を通常の手順でアップグレードする場合は問題ありませんが、(デフォルト設定のファイル名で)エクスポート・インポートによって MT4 に移行する場合、MT3 のエクスポートフォーマットではファイル名が引き継がれません。

ファイル名を引き継ぐには下記の記事を参考にすると良いでしょう。

5.注意事項

Movable Type のエクスポートデータフォーマットのセパレータ(フィールドの区切り文字)には連続したハイフンが使われています。

したがって連続したハイフンを本文で用いると正常にインポートできなくなる可能性があります。本文には連続したハイフンを使わないようにしましょう。
なお、この記事ではハイフンを「-」で実体参照しています。

このサイトでも、頂いたコメントに連続したハイフンが含まれていたことがあり、そのため正常にバックアップできない事象が何度かありました。
ということで、コメントにもハイフンはご使用にならないでください。

関連記事
zenback
人気エントリー
トラックバックURL


トラックバック

MT4バックアップがらみの注意点 from ストレンジャー
●まずは、tempフォルダの設定をレンタルサーバーでMovable Type 4... [続きを読む]

Tracked on August 28, 2007 7:52 PM

ブログ移行失敗の原因と対処法 from Salt, Sugar & Spice
2つ前の記事に書いたとおり、今回スワブロからSPORAに移転しようとして、ずっと失敗し続けていました。 最初、誤ってインポートのボタンを二度クリック... [続きを読む]

Tracked on March 13, 2008 8:23 PM
コメント

こんにちは!
Movable Type 4からMTを始めたものです。カスタマイズにあたり、このサイトを参考にさせていただいてます。(とても詳しくてありがたいです♪)

ところで、tmpフォルダってどこにあるのでしょうか?
今日バックアップを試してみたのですが、どうもtmpフォルダが見つからないんです。。。インストール時に作りもしなかったのに、バックアップは正常に行われました、と出て、あたかもどこかにtmpフォルダが存在しているような感じのメッセージなんです。サーバーの中を探してみたんですが、どうも見つからなくて。。

[1] Posted by Holly : August 24, 2007 4:22 AM

あっ ごめんなさい。MT4でconfigに追加設定しないと、私が使ってるようなレンタルサーバーだとサーバー自体のtmpフォルダにバックアップファイルを生成してしまうみたいだということに気付きました。慌ててconfigにTempdirの設定をしたらちゃんと自分が作ったmtフォルダ内のtmpファイルにバックアップファイルが生成されました。
自己解決してしまいました。お騒がせしてスミマセン>_あっ ごめんなさい。MT4でconfigに追加設定しないと、私が使ってるようなレンタルサーバーだとサーバー自体のtmpフォルダにバックアップファイルを生成してしまうみたいだということに気付きました。慌ててconfigにTempdirの設定をしたらちゃんと自分が作ったmtフォルダ内のtmpファイルにバックアップファイルが生成されました。
自己解決してしまいました。お騒がせしてスミマセン>_<;

[2] Posted by Holly : August 24, 2007 5:02 AM

>Hollyさん
こんにちは。
ご質問の件、解決されたようでよかったです。

ちなみに /tmp はサーバのルートディレクトリにあるので、レンタルサーバで共有ユーザ利用であれば、アクセス制限の関係でFTPツール等で /tmp に移動できない場合があります(さくらインターネットはOKの模様)。

/tmp はファイルアップロードの上書き時に一時保存先として使われていたので、ここを直接参照する必要はなかったのですが、MT4からはバックアップ保存先としても使われるので注意が必要ですね。

[3] Posted by yujiro : August 24, 2007 10:23 AM

こんにちは!親切にご回答ありがとうございます!
いやーうっかりしてました;私のレンタルサーバーはルートディレクトリに対してはユーザーのアクセス権限がないので、届かぬところにずっとバックアップが作成されていたみたいです;
MTを始めたばかりで手探りで作業をしてるのですが、このサイトに助けられました??!
これからもいろいろと参考にさせていただきながら勉強していこうと思います。ありがとうございます?!

[4] Posted by Holly : August 24, 2007 11:21 AM

MT4 を使っています。このコメント欄のやり取りを読んで、ぼくも mt-config.cgi に
TempDir /temp/
と記述し、アプリケーションディレクトリに temp というフォルダを作ってみました。
すると、システムログに
「ロックされて必要なタスクを実行できません。TempDir(/temp/) に書き込みできるか確認してください。」
といったようなログが幾つも表示されてしまいました。
mt-config.cgi の記述がいけないのか、temp フォルダを作った場所がいけないのか、パーミッションがデフォルトの 755 ではいけないのか、さっぱりわからず元に戻しました。
レンタルサーバは こちらと同じく 「さくらのレンタルサーバ:スタンダード」 なのですが、何がいけなかったのでしょう?

[5] Posted by hiro : August 25, 2007 4:32 AM

>hiroさん
こんばんは。
ご質問の件ですが、/temp だけではサーバのルートディレクトリを参照するので正しい設定ではありません(ルートに対するパーミッションがないのでエラーになります)。

サイトパスの末尾に /temp を加えた文字列を設定すると良いでしょう。
さくらインターネットのサーバであれば、例えば下記のような感じになります。

TempDir /home/[ユーザ名]/www/mt/temp

それではよろしくお願い致します。

[6] Posted by yujiro : August 27, 2007 2:46 AM

こんにちは。
mt-config.cgi への追加記述は、マニュアルの記述例を ただ書いてもダメなのですね!
教えていただいたとおりに作成した tempフォルダのアドレスをきちんと記述したところ、エラーログも出なくなり、作成した tempフォルダにバックアップが作成され、それをダウンロードした旨のログが表示されました。
お忙しいところ、ありがとうございました。
まだまだ残暑が厳しいですが、お体を壊されぬよう、これからも頑張ってください!

[7] Posted by hiro : August 27, 2007 4:26 PM

>hiroさん
こんにちは。
ご連絡遅くなり申し訳ありません。
無事に解決されたようで何よりです。
ではでは!

[8] Posted by yujiro : September 6, 2007 11:21 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)