Movable Typeのメンテナンス完了
著
当覚え書きは長らくMovable Typeで運用していますが、かねてより
- 不都合はないけれど、サイト全体の文字コードをいずれUTF-8に変えたい手前、覚え書きについてもEUCからUTF-8に変更したい
- 記事の数が地味に増えてきたので、データベースをSQLiteからMySQLに変更したい
という二つの課題がありました。もっと早くに着手すべきところ、先月末にようやく重い腰を上げて取り組み始めたのですが、なかなかうまくいきませんでした。具体的には
- バックアップファイルの置き場所(TempDir)をmt-config.cgiで明示的に指定していなかった(
初期値として「/tmp」に設定されて
いたらしい......罠過ぎる) - 大量のスパムコメントを削除していなかったため、無圧縮300KB単位でファイルを保存するのに長時間かかった
というのがあります。TempDirを明示指定し、スパムのコメント/トラックバックをすべて削除したうえで、バックアップは成功しました。システムログも削ってしまえば、もう少し時間を短縮できたかもしれませんが。次に復元先のMovable Type(※運用中のと同じバージョンの4.292-ja)を用意するのですが、そこはさくらインターネットサーバーへのインストール | Movable Type 4 ドキュメントを参考に完了。MySQLでデータベースを作る際、文字コードにUTF-8を選んだのは言わずもがな。そこまで手を動かして再び一ヶ月近く放置していたのだけど、この3連休にふと思い立って復元......つまり最終的な移行に取り組んだですが、これまたすんなりとはいきませんでした。一ヶ月の時間差があるので、まずバックアップを取り直したのですけど、困った点は主に以下の通り:
- バックアップファイルで一部に文字化けが発生したため、ファイル個別に文字コードをUTF-8(※BOM無し)に変更
- 先人の教えに従い、すべてのXMLファイルのmovabletype要素を*-Backup-1.xmlのそれに合わせるよう修正
- 復元実行時に勘違いして*-Backup.manifestではなく*-Backup-1.xmlを指定した結果、一部のエントリしか復元されなかった(おい
- 「Request URI Too Large」エラーに遭遇したため、バックアップファイルはサーバ上のimportディレクトリにアップしておく方式に変更
- サーバ側に負荷がかかってしまうのか、たいていコメントの復元中に止まってしまう(けれどエラーが何も返ってこないので原因は不明)
困った都度、先人の皆さんの記事を参考にして解決しました、ありがとうございます。そして日曜の朝という、おそらくサーバの処理が重くない時間になってようやく全てのコメントを復元できたっぽい(しかし正常な復元終了は確認できなかった)ので、全ページを再構築し移行作業はひとまず終了ということに。あぁ疲れた......復元を試みては失敗、ブログを削除し再度復元てなことを繰り返したため、気づいてみればblog_idは13になっていました。あとは本エントリが無事に投稿でき、PostTwiOauthもちゃんと動いて、Diigoからの自動投稿が機能すれば完璧。