MovableTypeのバックアップと復元

あるサイトをMovableTypeで構築。

そのサイトのテスト用のミラーサイトを用意するために、データの同期をしようと色々試してみた。

まずは、公式サイトに載っている方法で試す。 ブログの完全バックアップと、データベースのバックアップ バックアップしたブログの復元

まず失敗。 バックアップ時に出来上がるXMLを復元で読み込ませるのだが、パースエラー。 XMLで一部文字化けがあるみたい。 文字化け部分を修正すると、 バックアップは成功し、テストサイトで復元成功。

各種画像ファイル、カスタムフィールド、テンプレートなどデータ一式ちゃんと復元されていた。 再構築などしサイトも復元させる。 そして、ページの確認。

ん、なんかおかしい。 サイドナビの画像がおかしい・・・ CSSスプライトで画像は指定しています。

ちなみに、CSSスプライトというのは、通常複数の画像でナビゲーションなど生成するが、 その複数画像を1枚の画像をずらして、 表示する部分と非表示部分をCSSで調整して表示する技術です。 この技術を使うと、サーバーへのリクエスト回数を減らすことが出来、 トラフィックが気になるサイトなどではパフォーマンス改善にとても有効です。

で、話は戻る。 ナビ画像がおかしい。 CSSのclassを確認すると、「C22」「C23」などとなっている。 テンプレートの設定で、class名にC+カテゴリIDを指定する仕組み。

■22や23のIDのカテゴリなんか存在しない。 ↓ ■つまりCSSで定義していない ↓ ■CSSスプライトが機能しない ↓ ■ナビ画像が正しく表示されない

このような状態となったのが原因でした。

↓こんな記事も発見 バックアップと復元に気をつけよう

標準のバックアップと復元機能を使うと、MTでエントリーしたデータのIDは引き継がれないようだ。。 これじゃミラーとはならない。。。

ということで、標準機能での復元は断念。

結局、次の方法でやることになった。

MySQLのダンプを取る ↓ ■ダンプ内のサーバー依存のパスを書き換え ↓ ■コピー先のDBにダンプファイルをリストア

これしか完全なミラーでデータを同期する方法はないようだ。 ダンプとかサーバー依存パスがあるので敬遠して、 MT標準機能でやろうとしたのに、 結局ダンプになってしまった。。

何事も試してみないとわからんな。。