このブログは開設当初からMovableType(以下MT)で運用している。最近、MTについてセキュリティ関連でのアップデートがあったので、これまでのアップデートと同じように各フォルダやデータベースをバックアップしてからアップデートを適用しようとしたのだが、今回の作業はかなり難航してしまった。
最初に躓いたのは、データベースのアップデート時に mt_filterというテーブルがないとのエラーが出た件であった。うちのブログはデータベースとしてMySQLを使用していて、phpMyAdminでデータベース内のテーブルを確認したところ、確かに、mt_filterというテーブルは存在しなかった。この問題については、結局、MT 5.12を一旦新規インストールすることで解決。行った作業は以下の通り。
- 元のMT 5.12上でバックアップを実行。データサイズが大きめになりそうだったので、今回は圧縮したバックアップファイルを作成。
- MySQLのデータベースをMTから見えない状態に設定。今回は、/var/lib/mysql以下に存在しているMySQLの各データベースのうち、MTで使用しているデータベースのフォルダ名をリネームした。
- 元のMTのインストールフォルダをリネーム。
- MT 5.12をインストールし、アップデート時と同じように元の5.12のmt-config.cgiをコピー。その他、テーマやプラグイン等の各種フォルダのコピーも実行。
- mt.cgiを実行。新規インストールと同等の各種設定が必要になる。この際のデータベース構築時に、mt_filterテーブルも作成されることを確認。
- バックアップファイルを用いて復旧作業を実行。バックアップファイルが大きく管理画面経由でのアップロードができなかったため、MT 5.12のインストールフォルダ以下の importフォルダに圧縮済みのバックアップファイルを展開し、管理画面から復旧作業を行った。
上記作業を行った後で、改めてMT 5.13へのアップデート作業を実行したのだが、今度は、データベースのアップデート時にmt_failedloginテーブルが作成できないとのエラーになった。既に存在するから作れないとのエラーメッセージだったのだけれど、phpMyAdmin経由で確認したところでは mt_failedloginというテーブルは存在しなかった。情報収集の結果、この問題については、強引な解決方法ではあるがアップデート用のPerlモジュールである Upgrade.pm内のエラー判定部分についてテーブル作成エラーを無視するようにして対処。
その他にも、テンプレートの設定ミスやらパス設定ミスなどもあり、正常な状態に持ってくるまで予想以上に時間がかかってしまった。何とか、うまく復旧できて良かった…。
Comments:0