MT3.2ja-2 エクスポート エントリが全てエクスポートできない時

MTのエクスポートをしても、一度に全てのエントリーを書き出せなかった時の対処法を忘れないうちにメモ。まずはエクスポート実行の前に、テンプレートやエントリーなどは全てバックアップする。

【目的】
MTのアップグレードや、MTから他のブログツールに移行したいとき、安全にエントリーをバックアップし移行するために、エクスポートを実行しエクスポートファイルを作成する。

【エクスポート作業の流れ】
1. 現在使っているMT(私の場合は2.661)のメインメニュー → ユーティリティ → Import/Exporto をクリックする。
2. エクスポート画面で、○○○○○blog から Entry を Export する をクリックする。
3. ブラウザでエクスポートファイルが生成される。この間、数秒から数十秒かかる。
4. そのエクスポートファイルを全てコピーし、漢字コードを UTF-8 で改行コードは LF に指定し、拡張子 .txt で任意の名前(私の場合は ex.txt とした)でファイルを保存する。

私の場合、まず IE6.0 でエクスポートしたら投稿画像はそのままJPGとして表示された。これがテキストファイルに変換するときに良いのか悪いのかが分からないが、とにかくエントリーを投稿するときのように<img src="http://****/****/***.jpg">の方が良いんじゃないかと思って、Opera でエクスポートをやり直した。するとOperaではJPG画像が表示されず、その部分はHTMLタグになっている。IE6.0 でもソースを開いてコピペすれば良いのかもしれない。この辺が理解できる人は、エクスポート作業に悩むことも無いと思うけど、エクスポートは何度でもやり直しが効くので色々試してみるのも良いかも。

5. 最新版MT3.2ja-2をインストールし、インポートしたいブログが新規作成されている状態にしておく。
6. FTPソフトでこの最新版MTのあるサーバーサイドにつなぎ、mtディレクトリの中に新規にimportディレクトリを作成する。

この次に7.のエクスポートファイルを転送する前に、もう一つやっておいたほうが良い作業があった。私はインポートを焦るあまり、アップロードしてあったJPGのことをすっかり忘れていた。・・・というより思いつかなかった。(ーー;) 今回私はサーバーも替えたので、画像の絶対パスが違う。エクスポート作業で作成したテキストファイル ex.txt の中で、絶対パスを新しいアドレスに置換しておくと後でエントリーを一つ一つ修正しなくて良いので楽チン。もしも私のように、焦ってインポートまで済ませてからJPGアドレスが違うことに気づいたら、インポートしたばかりのエントリーをまたエクスポートして、そのファイルで置換しても大丈夫。あるいは、管理画面から検索→置換でもOK。

7. このimportディレクトリに、先ほど作ったエクスポートファイル(ex.txt)をバイナリモードで転送する。

これでエクスポートの準備は完了。しかし問題は、生成されるエクスポートファイルにおいて、全てのエントリーが記載されていない場合だ。私の場合はエクスポートする時点でエントリー数は700近くあり、生成されたエクスポートファイルの最後を確認すると、途中までしかエントリーが記載されていないのが分かった。エントリー数がいくつ入ったのか実際には確認できないのだが、とにかく途中で終わっていることが分かる。しかし焦る事なかれ~♪ 

【全てのエントリーがエクスポートファイルに書き出されていない場合】
1. 旧バージョンMT2.661のメインメニュー → Entryの編集 で、エクスポートファイルに生成されたエントリーのみ削除し、リビルドする。(インディビデュアルアーカイブのみリビルドされていれば十分だと思う) この後、またエクスポートを実行しエクスポートファイルを生成させれば、以前のエクスポートファイルに書き出すことの出来なかったエントリー以降が書き出されている。
2. 新しく生成されたエクスポートファイルを、最新版MT3.2ja-2のサーバーサイドのimportディレクトリにアップロードする。その際には同じファイル名で上書きアップロードするか、以前のエクスポート済みファイルを削除しておくこと。 

この際には一番初めにも書いたが、当然前もってエントリーのバックアップをとっておく。私の場合は新しいMT3.2ja-2の方にとっととインポートし、エントリーがちゃんと読み込まれてインポートが成功していることを確認してから、MT2.661のエクスポート済みエントリーを削除した。要するにエクスポートとインポートを少しずつ並行して実行した。

2回目のエクスポートでも全てのエントリーが生成されていなかったので、私は合計3回エクスポートを実行した。しかし3回のエクスポートだから、3回のインポートをすれば良いかと思ったら、これもそんなに甘くはなかった。(~_~;) 1回分のエクスポートファイルをインポートした時、読み込みできるエントリーはそのエクスポートファイルの全てではなかったのだ。およそ3回から4回を要した。

【インポート時にエクスポートファイルの中の全てのエントリーが読み込めなかった場合】
(まずはインポートの手順から)
1. 新しいほうのMT3.2ja-2のメインメニュー → ユーティリティ → 読み込み/書き出し をクリックする。(サーバーサイドのmtディレクトリの中にimportディレクトリがあり、その中にエクスポートファイル(たとえば上掲の ex.txt など)がダウンロードされていることが前提) 
2. 読み込み画面では エントリーの投稿者を自分にするにチェックを入れ、最下行にある【読み込み/書き出し】ボタンをクリックする。
3. 『読み込み中…』と上部に表示され、スタータスバーにプログレッシブメーターが表示される。これが完了し、スタータスバーに『ページが表示されました』と表示されれば読み込み完了である。
4. 初回のインポート作業では『読み込み中…』がずっと消えないので、完了したとは認識できずに長時間待っていたが、しばらく経過して良く見ると、中央部には
エントリー「○○○○○」を保存します。OK (ID ***)
と経過状況が表示されていて、最下行までスクロールすると最後のエントリータイトルだけはOKが付いていないのが分かった。要するにこの直前のエントリーまでインポートが完了しているのだ。エントリータイトルを確認すれば、エクスポートファイルのどこまでがインポートされたのかが確認できる。エントリー数が多ければほとんどのインポート実行において、一回でインポートは完了しないと思う。

(ここからがエクスポートファイルの中の全てのエントリーが読み込めなかった場合)
5. 最初のエクスポートファイル ex.txt を開き、インポートできなかった最下行のエントリータイトルを検索して探す。そのエントリータイトルより上のエントリーが既にインポート済みなはずである。最初はそれを一つ一つ良く確認して確信をもってからそれらを削除し、上書き保存する。

私の場合は、一番最初のインポート作業で、面倒でも一つ一つのインポート済みエントリーを確認してからエクスポートファイルから削除した。そのときに分かったことだが、古い順からエクスポートファイルが書き出されていることが確認できたので、2回目以降のインポート作業では一つ一つのエントリーを確認せずに、エントリーの保存にOKが付いていなかった最下行のエントリータイトル以前のもの全てを削除して、エクスポートファイルを上書き保存した。

6. インポート済みのエントリーを削除したエクスポートファイル ex.txt を再度アップロードし、再度MTのユーティリティから読み込み/書き出しをクリックする。サイトを再構築してエントリーを確認。エクスポートファイル内の全てのエントリーがインポートされるまで、この作業を繰り返す。

この際に、インポート済みエントリーを削除し忘れて再びインポートを実行すると、同じエントリーがもう一つずつ読み込まれるのでエントリーが二つずつ出来てしまう。そのときは重複したエントリの一つを削除すれば良い。最新のMT3.2ja-2では削除するのも容易なので楽勝。

以上でエクスポートからインポートの流れを記録したつもりだが、まだやらなければいけないことがある。それはJPG画像のこと。私はほとんどのエントリーに画像を投稿しているので、JPGの数も半端じゃない。そしてサーバーも移行したのだが、今の状態では画像アドレスを絶対パスでエントリーに記載しているから、旧サーバーのフォルダからそのまま表示しているだけだ。これらのJPGを新しいサーバーにコピーしてはあるが、全てのエントリーのHTMLタグを書き換えなくちゃならないのか。。。。これって相当面倒イね~。(ーー;) 特定のHTMLタグのみ検出して、バッチ作業できるコマンドがあれば良いけどそんなの分からないしさ。そのほかの課題は、カテゴリの修正とブログスタイルのカスタマイズ、それにプラグインの導入、とまだまだ作業は続く。

バッチ作業・・・なんて、この時は書いてる。この後思いついたけど、エクスポートが完了しているんだから、新しいブログからもう一度エクスポートしてテキストファイルに書き出し、そのファイル上でJPGアドレスを置換しておけば良いのよね~。それをまたインポートすれば良いだけ。我ながら思いつくのが遅かった。それとも、インポートしてから検索→置換っていう方法でも良かったわ。

そしてこのように、分からないながらもインポートが短時間で出来たのは、新しく契約したロリポップサーバーのお陰。それもMySQLというデータベースへ移行したからだ。iswebベーシックサーバーではBarkley DBしかないので、膨大な数のエントリーをインポートするにはエラーの連続で、インポートすること=MT3.2ja-2へのアップグレード自体を、途中で断念していたかも知れない。このMySQLデータベースへの移行と、最新版MT3.2ja-2のインストールについては、別のエントリーに書くことにする。


Comments

“MT3.2ja-2 エクスポート エントリが全てエクスポートできない時” への1件のコメント

  1. やる気のない日々のアバター
    やる気のない日々

    あらためてご挨拶。

    以前もいっかい書きましたが、ライブドアのほうの更新今日で止めちゃったもんで。 い…