CakePHPを使ったアプリで追加デプロイ時の注意
今、CakePHPを使ってある業務システムを作成している。結構な規模を他の仕事も抱えながらひとりでちまちま作成するものだから、工期がかなりかかってしまう。それだけ長い間、お客さまをお待たせするわけにはいかないので、イテレーション開発手法を導入している。昨日、ちょうどイテレーション3部分が完成したのでリリースするために追加部分をデプロイした。そのときに少し肝を冷やしたのでメモ。
追加された機能を早速動かしてみたら、
An Internal Error Has Occurred
と表示される(汗)。もともと動作している部分は問題なく動くのだが、新規の部分だけ動かない。ログ系をいろいろ見ても何も記載されていない。困った…(T_T)。こういったときは、グーグル先生。いろいろ調べてみると、どうもキャッシュが効いてしまって新規に追加されたモデルが自動生成されないのが原因らしい(確証はないが…)。デバッグモードではキャッシュを更新してくれるのだが、本番は当然デバッグモードをオフにしている。
ということで、回避策としては、一瞬だけデバッグモードにすることらしい。
app/config/core.php
の
Configure::write('debug', 0);
の0を1か2にすればOK。
これは、 CakePHP An Internal Error Has Occurred | Rutakeの技術メモ に助けられた。