CakePHP:データベースが更新されない時の対処方法

CakePHPで開発をしている時にデータベースの一部のデータが更新されないということがありました。

データベースのフィールドを追加し、CakePHPでデータを更新すると新しく追加したフィールドだけが更新されないのです。
しかし、他のフィールドは正常に更新されます。

どこか間違えている箇所があると思い、何度もソースを見直したのですが、原因が分からずにいました。

なので「app」配下のディレクトリを一つ一つ確認していたら、怪しいと思ったファイルを発見しました。
下記のディレクトリ内にデータベースのテーブル構造を格納するモデルキャッシュファイルがあったのです。

app/tmp/cache/models

そのキャッシュファイル削除したら正常にデータが更新されました。

忘れないように、下記にCakePHPデータベース更新されない時の対処方法をメモします。


データベースが更新されない時の対処方法

CakePHPではデータベースのテーブル構造を格納するキャッシュファイルが作成されます。
データベースのフィールドを追加した場合、キャッシュファイルが前の情報のままだとデータが正しく更新されません。

その際は下記のディレクトリのキャッシュファイルを削除します。

app/tmp/cache/models

削除すると新しいキャッシュファイルが作成され、正常に更新することができるようになります。


CakePHPでデータベースのテーブルの構造を変更した場合は、キャッシュファイルを削除するのが良いと思います。