今日のお昼頃、ブログの記事を書こうと思って、いつものように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にバージョンアップ
してみることにしました。最新版をサーバーにアップロードするのに時間は少しかかりますが、手順は難しくありません。
アップグレード後、あらためて管理画面にログインすると、エラーは解消しており、新規投稿もできました。
まとめ
一体、何だったのでしょうか。。原因はわかりません。
それでも復旧できたし、いつかはやらなければいけなかったバージョンアップもできたので、
よかったことにしておきます。
ただ、どこでなったかわかりませんが、過去の記事に割り当てていた100名城とか一之宮とかの「カテゴリー」は、
すべてクリアされており、入れ直すことになりました。
500件以上ある記事に、カテゴリーを振りなおすのは、大変でまだやりきれていません。
今回のトラブルは、自分でおかしなことをした覚えはなく、突然発生したことですが、
その割には冷静に対処できました。
私のブログは、既成のサービスを使わず、自分でレンタルサーバーを借りて、
その中に必要なものをインストールして、やっているのですが、
自由な代わりに、不具合があったときは、自己解決していかなければなりません。
感覚でやっているところもたくさんあるので、
不測の事態に備えて、せめて定期的なバックアップぐらいはしていくように
しないといけないかも、と思いました。