Vectorjuice-an abstract vector created by jp.freepik.com
ペンちゃん
本番サーバーと同じテスト環境での確認もできたし。
よしっ!本番公開だ!
あれ?どうやら追加したフィールドが取得できてないし、更新もできてないみたい。
なんだこれ?
本番環境でこんなことが起きると焦りますよね。
結論、問題はキャッシュでした!
解決法
今回のシステムは少し古いバージョンでしたが、
app/tmpにキャッシュファイルが作成されるのはどのバージョンでも一緒でしょう。
core.phpに設定されている
Cache::config('default', array('engine' => 'File'));
この第一引数、今回は’default’を見てください。
cake_model_default_テーブル名
このような名前のキャッシュファイルが存在しています。
このファイルを削除することで、
モデルのキャッシュが消え、
追加したフィールドを更新することができました。
解説
なぜキャッシュファイルがリフレッシュされなかったのか?
core.phpに設定されている
Configure::write('debug', 0);
デバッグレベルが関係しています。
こちらの設定が0だとキャッシュがリフレッシュされません。
1~3に設定するとキャッシュはリフレッシュされるのでこのような問題は起きなかったでしょう。
しかし、本番環境でエラー表示が出てしまうのはまずいので
キャッシュがリフレッシュされたら0に戻してください。
ここまでやっても直らない場合は、キャッシュ無効化も可能です。
こちらもcore.phpの設定で
Configure::write('Cache.disable', true);
これでアプリケーション全体でキャッシュをオフにできます。