2004年02月12日

SubCategories の導入にてこずる

また、仕事がらみでMTを使ったBLOGサイトを立ち上げることになりました(今度のはかなり本格的なものになりそうです)。で、そのBLOGでどういうことをやりたいかを詰めていて、サブカテゴリを実現できるか、という懸案が出てきたので早速調べてみたら、「SubCategories」というプラグインを難なく発見。MTはプラグインが充実しているようなので、こういうときに便利です。

さて、Blade-xさんの「MTのPlugins3」というエントリーを参考にしながら、早速導入してみます。まず、このBLOGをホスティングしている「Xrea」内にテスト設置してみると、いとも簡単にサブカテゴリ化させることに成功。まぁ、PluginディレクトリとMTのルートディレクトリにそれぞれファイルを置くだけなんで、誰でも出来ますよね。

で、今度は実際にあたらしくBLOGを乗せるサーバーで試してみたところ・・・。何度やっても、「Set」ボタンを押した時点で「Error saving MT::PluginData」というエラーが返ってきて、どうにも上手くいきません。ググってみても、同様の現象の報告は見当たらないので、仕方なくソースを眺めてみることに。Perl、苦手なんだよなぁ。トホホ。。

-- 追記 --

まともにMTのソースを眺めるのが、実は今回が初めてで、もう何がなんだかサッパリ(笑)。サッパリながらも該当の mt-sc.cgi ファイルの中に、上記エラーを吐き出す部分を発見。どうも、DBにデータを登録する部分でなぜかエラーになるようです。
さらにソースを追っていくと、lib/MT/PluginData.pm の中で Storable というモジュールを使って、配列のデータ構造を保持したまま(?)シリアライズしている部分があって、どうもこの値をDBに記録することが出来ていない感じです。

ここまできて、この自分のBlogはMySQLを使っているのに対して、失敗する環境ではPostgreSQLを使っているという違いに思い当たりました。これが原因かな?と思って、BLOGの初期化の際に発行するテーブル生成SQL(と思われるもの)を見てみると、プラグイン用のテーブルのシリアライズされたデータを格納するカラムの型が、MySQLだと"mediumtext"なのに対してPostgreSQLだと"text"と微妙に違うようです。MySQLの知識は0で、PostgreSQLに対しても乏しい知識しかないので、この型の違いがよくわからないのですが、この辺しか私には原因が思いつきません。

試しに、実際に新しくBLOGを設置するサーバーにMySQLをつんで、そちらの環境で上手く動くかどうかを確認できたら、もっと説得力が出てくるんですが、あいにくDBはPostgreSQLしか使用できないので、ちょっと検証不足です。
仮にPostgreSQLのtext型フィールドに、Storable の freeze によってシリアライズされた値を格納できないとしたら、デフォルト設定のままだとプラグインを使ってDBに値を格納する必要がある場合全てOUT!ということになってしまいますね。おぉ、恐。。

とはいえ、ネットで検索して上記報告はどこにも見当たらなかったので、勘違いの可能性も高いです。それとも、単にMT + PostgreSQLという組み合わせはマイナーなんでしょうか?もっとPostgreSQLの知識があったらなぁ。

もう一つ、DBをDB_FILEにしてみたらどうだろう、と思いついたんで試してみたところ、上記サーバー環境でも問題なくサブカテゴリ化に成功してしまいました。やっぱりPostgreSQLがあやしい気がする。。

>> このエントリーに含まれるTAG
>> 関連するエントリー
投稿者 shaw : 2004年02月12日 18:45

Trackback

このエントリーのトラックバックURL → http://www.s-hashi.net/x/mt-tb.cgi/252

コメント

どうやらPostgreSQLだとダメらしいです。
やっつけ(?)ですが対処しました。イマサラかと思いますが、参考にどうぞ。
http://homepage3.nifty.com/mametaroX/archives/movabletype/index.html#000008

Posted by: まめたろ : 2004年05月21日 19:23

わざわざご報告をありがとうございます。
やっぱり原因はPostgreSQLだったんですねー。
結局この仕事の時は、ホスティング環境が変わったので気にする必要が
なくなったんですが、一つ良い勉強になりました。

上記例は、英語の本家pluginサイトで報告済みだったんですね。。
英語恐怖症なんで、日本語サイトしか調べてなかった・・・。

Posted by: shaw : 2004年05月23日 11:36

コメントする









名前、アドレスを登録しますか?