バッチ処理
では最後、バッチを使ってデータを更新したり、削除したりします。 バッチの処理は /app/venders/shells/ の中にファイルを作ります。今回はmembersテーブルのデータを処理するので、 /app/venders/shells/member.php とします。 で、中に以下のように書きます。
<?php
class MemberShell extends Shell {
var $uses = array('Member');
function main() {
//メールアドレスにgを含むデータを削除、関連テーブルからも
$this->Member->deleteAll(
array('Member.email LIKE' => "%g%"), true, false
);
}
}
?>
$uses で使うモデルを指定しています。 削除ではなく、更新をする場合は、
$this->Member->updateAll(
array('Member.birthday' => "'1970-03-15'"),
array('Member.created <=' => "$this_day")
);
こんな感じになります。 このファイルを用意しておいて、コンソールから、
cd /Users/myname/Sites/cake/app cake member
と実行します。app に入っていることが大事です。 crontab から実行する時はフルパスで書けばよいでしょう。
/Users/myname/Sites/cake/cake/console/cake member -app /Users/myname/Sites/cake/app
以上で今回作ったシステムのまとめは終わりです。
[おわり]