Feb.28, 2006

MovableType更新

[Site Update]

当サイトは、現在MovableType(MT)で構成されています。

私自身はWeblogというよりはCMSとして捉えているのですが、エントリ単位での管理とRSSへの対応など、最近の流行には沿っていると思います。XOOPSはコミュニティと明確な目的意識がなかったので自分には牛刀だったかも。

さて、そのMTがちょっと前にバージョンアップしています。しかし、マイナーというには少々大掛かりなアップデートになりそうだったので、何だかんだでアップデートをサボっていました。

そろそろそういう訳にもいかなくなってきたので、アップデートを決意。まずはその演習を行いました。

テスト用に構築しているcoLinux内の環境に現在のMTを移植した上で、3.17jaから3.2ja-2へアップデートします。

MTの移植は、DBのエクスポートとインポート、ファイルの転送と環境依存部分の設定変更だけのはず…だったのですが。

まず、DBのエクスポートからしておかしい。エクスポートするsqlがテーブルの途中から化けるという怪現象。どうもunicodeが絡むと厄介になるなぁ。結局片付かなかったので、仕方なくファイル生成を諦めてブラウザに出力させ、それをファイルに貼ってsqlを生成。いいのかこんなんで。

余計な時間を喰ったところでアップデータを実行すると、これが途中でどうしても引っかかります。

エラーコードは返してくるけれど、そもそも実行しようとしていたsqlが分からないと対処ができない。そんなわけで、該当箇所のdieしている処に直前の実行sqlを吐かせるようにして再実行。すると、次のsql文のエラーであることが判りました。

alter table mt_session modify session_id varchar(80) not null primary key

テーブルを見ると、確かにprimary keyは設定済みだから、重複定義が失敗するのは当然。しかし、このsqlを生成している場所が見つからない。スキーマか何かを読んで実行してるのか?

perlのソースは読みにくくて嫌いなので深くは突っ込まず、現在のテーブルからprimary keyの設定を削除して実行する。結果的に重複定義ではなくなり、エラーは回避されるという寸法。乱暴だけど。

アップデートが済んだら再構築。しかしインデックスページの構築結果が途中で切れてます。ぷち切れている場所をテンプレートと照合するに、どうもプラグインがコケているらしい。

マイナーでは済まないアップデートだから、こういう不具合もあるだろう。これはちょっと調べれば対策版を見つけることができたので入れ替え。CutFirstCharとして知られるプラグインを使っている人は要注意です。あと、自作のphpプラグインの移植を忘れていたので再配置。

これでようやくアップデートが完了。やっぱり、まずはテスト環境で検証しないと滅多なことはできませんな!

あとは本番環境での移行作業。空いてる時間を見計らわなきゃ。

3/2朝、移行完了しました。

Here are 0 Comments & 0 Trackbacks