MovableTypeで突然記事が投稿できなくなった問題を6.3.3にアップグレードで解消できた話

今日のお昼頃、ブログの記事を書こうと思って、いつものようにMovableTypeの管理画面にログインし、 記事の一覧を表示しようとしたところ、 画面の上部にCan't call method "id" on an undefined value at lib/MT/Core.pm line 187. とメッセージが出て、いつもは出てくる過去の記事の一覧が出てきませんでした。

データベースの不整合?

おや?と思いつつ、エラーメッセージをググっても類似した記事は以下ぐらい。 記事によると、ブログの情報を格納しているデータベースに問題が発生しているみたいですが、 肝心な解決の方法については、記載がありません。

MT6のブログの管理 画面でブログ名をクリックするとエラーになる

MySQLを覗いてみたが原因はわからず

一応、データベースを参照するツール「phpMyAdimin」を使って、データベースを見てみましたが、 案の定、私にはおかしなところはわかりません。 ただ、これまで自分が10数年に渡って書いてきた500件超のブログ記事が、そこにあることはわかりました。
いや、そもそも何もおかしなことはしてないはずなので、消えるわけもないのですが。。

以下の記事で紹介されていた「MovableTypeのデータベースを修復するスクリプト」をダウンロードし、 実行してみましたが、状況は変わりません。

データベースの不整合によるエラーの調査や修復を行う

一旦、過去記事の一覧が出ないのは無視して、新規の記事を書いてみても保存のところで、エラー。

さぁ困りました。このままだと最悪、新しくブログの作り直しということになってしまいます。 その過程で、データベースを壊してしまうと、書き溜めた記事がすべてなくなってしまうかも。 一度、パソコンから離れて、対応を保留としました。

とりあえずMovableTypeを6.0.3から6.3.3にアップグレード

数時間後、最後の望みを賭けて、MovableTypeを6.0.3から最新の6.3.3にバージョンアップ してみることにしました。最新版をサーバーにアップロードするのに時間は少しかかりますが、手順は難しくありません。
アップグレード後、あらためて管理画面にログインすると、エラーは解消しており、新規投稿もできました。

Movable Type 6 へのアップグレード

まとめ

一体、何だったのでしょうか。。原因はわかりません。 それでも復旧できたし、いつかはやらなければいけなかったバージョンアップもできたので、 よかったことにしておきます。

ただ、どこでなったかわかりませんが、過去の記事に割り当てていた100名城とか一之宮とかの「カテゴリー」は、 すべてクリアされており、入れ直すことになりました。 500件以上ある記事に、カテゴリーを振りなおすのは、大変でまだやりきれていません。

今回のトラブルは、自分でおかしなことをした覚えはなく、突然発生したことですが、 その割には冷静に対処できました。
私のブログは、既成のサービスを使わず、自分でレンタルサーバーを借りて、 その中に必要なものをインストールして、やっているのですが、 自由な代わりに、不具合があったときは、自己解決していかなければなりません。
感覚でやっているところもたくさんあるので、 不測の事態に備えて、せめて定期的なバックアップぐらいはしていくように しないといけないかも、と思いました。

関連記事