MTのアップグレードとMailPack地獄

  • 投稿日:
  • by
  • カテゴリ:

エントリが全て消滅した……何しろ、突然それは起こったのだけれど、何故、今の今まで平気だったのかは、全くの謎であった。

MailPackを導入すると、データベースの更新作業が発生する。テンプレートをシステムに登録したり、まあ、色々することがあるからなのだけれど、これがはまり道の最初だった。

いきなり、エラーを吐いて、更新作業が途中で終わってしまった。mt_template のtemplate_current_revisionが nullなんだよ、null禁止なのに~、とかいうわけだ。

とりあえず、システムも、5.01のまま放置していたらいつの間にか5.031になっていたから、そのせいかもなー、と、アップグレードをこちらもかけてみたら、今度は、mt_etnryの entry_current_revisionが nullなんだけど(以下略)ということで、変なことに。

とりあえず、もう一度、更新をかけてみたら綺麗に通ったのだけれど、エントリが全て消えた。テンプレートも消えていた。落ち着け、バックアップからデータを戻せばいいんだ。と、pg_dumpしておいた、データを戻そうとしたら、何だか、UTF-8にそぐわない文字が入っているんですが-、といわれて、mt_entryが戻ってこない oTL

どうしろと? と、うちのデータベースは、毎夜、その構造をまるっと、NAS上にコピーされている。これだ。これを戻してやれば、とりあえず、今朝の状態には戻る。カウンターがちょっと狂っちゃうけれど仕方がない。

PostgreSQLのデーモンを止めて、データをまるっと書き戻して、再起動すると、データはそこにあった。さて、これで今一度更新……したってダメなのはわかりきっているから、それはやらない。代わりに、mt_entryと mt_templateの中身を見てみる。 ‘psql> select entry_current_revision from mt_entry;’ というわけだ、すると ‘0’のものと、何故か nullのモノとが混在している。おいおい。そりゃあ、MT-2.661くらいから脈々と、途中文字コードも EUC-JPから UTF-8に変更して生き続けてきたブログですから、そういう妙なこともあるやもしれませんが……。調べてみると mt_templateの方も同様。

というわけで、強制的に、0にしてやった。’psql> update mt_entry set entry_current_revision=0';’ という感じだ。別に、既に'0'のものも上書きしたってなんの問題もないので、特に where節もつけない。mt_templateも同様にする。

斯くして、無事に全てのアップデートが走って、再び、ブログのエントリを重ねることができるようになった。それにしても、これからもこの種の問題は、ちらほらと起きそうで、ちょっといやな感じである。まず少なくとも、文字コードの件を何とかしないといけないが、さて。