音楽とお酒とものづくりと

営業マンが元webエンジニアの経験を生かしてあれやこれやするやつ

fuelphpのORMモデルによるDBアクセス時のデータキャッシュには要注意

最近がっつりハマってしまったfuelphpのORMモデルメソッド利用時の仕様について。


ORMのCRUDメソッドを利用してDBアクセスした場合、fuelのフレームワークがよかれと思ってアクセス時のデータをキャッシュしてくれます。
そして同じレコードに対するデータアクセスがあった場合には、そのキャッシュデータを返すという仕様になっているようです。


この仕様のせいでどえらいハマってしまったので、記録として残しておきます。


ORMのCRUDメソッド実行時の詳細なSQLクエリ実行の様子や、キャッシュを避けるための方法についてはQiitaにまとめて投稿しておりますので、そちらをご覧ください。
qiita.com



今回得た教訓としては、
・データの設定や実装が正しいのに、想定する結果とならない時はデータキャッシュを疑え
フレームワークを信用しすぎない
ということ。


この二つは連動しており、フレームワークの挙動を一切疑うことなく、「想定通りにいかないのは自分の実装が悪いからだ!」と信じきっていたため、原因追求に時間がかかってしまったと思います。
想定しない挙動によるエラーが起こった時には、多角的な視点を持って解決に臨むべきだと学びました。