CakePHPのモデルのキャッシュではまった -新しく追加したカラムに値が入らない-

公開日: : CakePHP, IT


タイトルのとおり、ちょこっとCakePHPではまったのでメモ。

作業内容

  • MySQLで、あるテーブルにカラムを追加。
  • ソースを修正し新しいカラムに値が入るように記述。
  • テスト環境(ローカル環境(Windows)/debug:2)で動作することを確認。
  • ソースをコミット。
  • プレ本番環境、本番環境を最新の状態に更新。

ここまでの流れは普通にあることだと思う。

発生事象

以下の事象が発生。

  • プレ本番環境(CentOS/debug:0)、本番環境(CentOS/debug:0)と新しく追加したカラムにだけ値が入らない。

MySQLでエラーが出ているわけでもなく、正常に処理が出来ているものの値が入らない。
しかしテスト環境だけは問題なく値が入っている。

調査

疑った流れは以下。

1. カラムに入れるべき値がそもそも空なのでは?
明示的に指定してみたけど、値は入らず。

2. カラム名に問題がある?(そんなことはないはず)
どんなカラム名でも新規に追加したものは受け付けないみたい。

3. これはキャッシュか・・?
正解

対処方法

どうやら、app/tmp/cache/modelsの配下にテーブル構造を格納したモデルのキャッシュがあり、これが古いままだったので問題だった。
このキャッシュファイルを削除すれば、問題は解決。

じゃあ、なぜテスト環境だけ動作したのか?
このキャッシュファイルは永続的に残っているかというとそうではなくて、以下のようになっている。

  • debugが0の時は999日
  • debugが0以外の時は15秒

もし、カラムを追加した場合は以下の処理が必要になる。
Cache::delete(‘useDbConfig名_テーブル名’,’_cake_model_’);

広告

関連記事

no image

Jenkins+Capistranoを設定した時にしたこと -「ポート変更」「公開鍵認証」対応-

* 前段階 上記にあるように、Jenkins+Capistranoの設定をしています。 ただし、設

記事を読む

no image

Objective-cで悩んでいたこと −アクセサのことについて−

* 疑問 以前書いたiPhoneアプリを開発していて(Objective-Cを触っていて)疑問に思

記事を読む

no image

アプリのためにFacebookページ作成 -現時点で注意すべき点-

* 前回 会社のメルアドでFacebookページを作成する方法を載せました。 * Faceboo

記事を読む

no image

jQuery Mobileの1.0Beta3、1.0RC1で起きた現象 -iOS5で動かない!?-

最近おきたjQuery Mobile周りについてのメモ。 本来なら色々チェックしてちゃんと原因を調

記事を読む

no image

iPhoneアプリ開発 -UIButtonのTouch Down、Touch up Inside、Touch up Outsideの使い方-

* Touch DownとTouch up Inside、Touch up Outsideの違い

記事を読む

no image

iPhoneアプリ開発 −フォントの変更−

一言:最近、iPhoneアプリの開発のためMacばかり触ってて、Windowsに戻ると混乱します。

記事を読む

no image

iPhoneアプリ開発 -mixiSDKを使ってmixi連携をしてみる(2)-

* 前回 は、「ユーザーにAPI利用のための認可」をおこなってもらうところまでやりました。 本エン

記事を読む

no image

Androidアプリ開発 -リストをタッチして別ページ表示-

* 前提 -「設定画面」で各種項目を設定。 --Activity:ConfigActivity --

記事を読む

no image

jQueryMobileでタッチ(スワイプ)してページ遷移 -Paginationプラグインの利用-

スマートフォン対応をしていてタッチしてページ遷移させたいケースがあるかと思います。 そんな時に便利

記事を読む

datebox-date

jQueryMobileでカレンダー表示 -DateBoxプラグインの利用-

スマートフォン対応をしているとカレンダーの表示の仕方をスマートフォンらしくしたいことがあると思います

記事を読む

広告

Comment

  1. aki より:

    私もモデル・キャッシュではまった(>_<
    はまった時を、思い出しました。

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑