複数のDB使用時の/app/tmp/cache/models

CakePHP が持つキャッシュ機構。
テーブル定義がキャッシュファイルとして、/app/tmp/cache/modelsフォルダに作成される。

core.phpに定義するdebugレベルによって、キャッシュの有効期限が変わり、debug=0の場合はtable変更を行っても反映されないという記事をいくつか見かけた。
この場合は、キャッシュファイル(/app/tmp/cache/models/配下)を削除する事で、新しいtable定義に沿ったキャッシュファイルが作られて解消させることができる。



さて、複数のDBに接続したシステムの場合。
マスタとスレーブのDBがあり、更新系はマスタDBに接続し、参照だけの場合はスレーブに接続するようなパターン。(DB切り替えには、useDbConfigを使ってます)


キャッシュファイルには、2種類が存在します。
1つはdatabaseのキャッシュであり、そのdatabaseに存在するtable情報がキャッシュされます。(ファイル名にdatabase名が使われる)
もう1つはtableのキャッシュであり、そのtableのカラム情報がキャッシュされます。(ファイル名にtable名が使われる)


そこで、マスタとスレーブのDBを利用するような場合、存在は別DBですが、レプリケーションの関係で同じ名前にしていると。。。


キャッシュファイルが1つになってしまいます。
実態は別DBなのですが、作成されるキャッシュファイル名がtable名に依存しているため、作成されるキャッシュファイルが重なる事になります。デバッグ文を見ると、片方のdatabaseにのみDESC文が発行されています。マスタとスレーブという関係のため、テーブル定義は同じなので問題がないかに思えるのですが、気持ち悪い。。。



できれば、別々にtable定義をキャッシュしてほしいと思うのですが、cake配下を触らずに解決できる方法はないものでしょうか?