9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CakePHPでキャッシュファイルを消しても新しく追加したカラムに値が入らないときの対処法

Posted at

CakePHPで、カラム追加等のDB設計変更がモデルに反映されない問題は、
結構起きる(最初にハマる)問題ですが、
ググると以下のように情報がたくさん出てきます。

スクリーンショット 2015-10-05 18.15.25.png

解決方法の内容としては、
大体、このようなことが書かれております。

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

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

app/tmp/cache/models

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

上記方法で解決すれば良いのですが、
たまに解決しないことがあります。
(APCキャッシュを有効にしている場合に発生?)

そんなときはデバッグレベルを確認してください。
デバックレベルを0にして開発していると、
キャッシュの影響で、DB設計変更がモデルに反映されない問題が起きるようです。

そこで、

core.php
// app/Config/core.phpの35行目らへん
Configure::write('debug', 2);

という形でデバックレベルを2にすると解消すると思います。
※デプロイ時にレベルを0に戻すのをお忘れなく

9
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?