CakePHP1.2.0.6311+PostgreSQLでの注意点

仕事が大変に忙しくて、連載どころではない状況です。
お楽しみにされている方はおそらくいないと思いますが(汗)、それでもやると言った以上まだ出来てない点については大変に申し訳ないと思っています。
とりあえず来週末までが山場です。それを超えればある程度余裕が出ると思いますので、ようやく始められるかな、といった感じです。なので、もうしばらくお待ちいただければ…

さて、そんな忙しい中、先日の「第二回CakePHP勉強会」でお知り合いになれた方が自社内で主催するCakePHPの勉強会にお誘いを受けまして現在楽しみにしています。予習をしていかないと落ちこぼれになりそうですので、現在慌ててやっているところですが、その際に一つ問題を解決しなければいけないところがありましたので、それをメモ書きしておきます。

先日の記事「CakePHP1.2+PostgreSQL8.3」で、問題なく動く事を書いてしまったのですが、実は注釈がありまして、「CakePHP1.2.0.6311には不具合があり、modelのfindは出来てもsave(更新)とdelが出来ない」のです。これはbdo_source.phpに不具合があり、発行するSQLがMySQLのみで有効な文法で出てくるためです。こちらにその情報がありますので、それに従いbdo_source.phpを入れ替えれば動作するようになります(ただし、findAll deleteAll(※) が効かないという報告があります。scaffoldを使う分には問題なさそうですが)。
まあ情報が出ていますので次のバージョンでは修正されそうですから、今回はファイルをそのまま入れ替えてしまいましたけど、一般的には新しいクラスでextendしてパッチを当てる方法もありかもしれません。cake領域に技術介入してしまうと、アップデートが大変になりますから…

※「findAll」ではなく「deleteAll」の間違いでした。訂正いたします。
※CakePHPのバージョン表記が間違っていました。正しくは1.2.0.6311です。