3.4.1 データベースの設定

CakePHPは、データベースの詳細設定ファイルをapp/config/database.phpに探します。データベースの設定例のファイルはapp/config/database.php.defaultにあります。設定が終わると次のようになります。

var $default = array('driver'      => 'mysql',
                     'persistent'  => false,
                     'host'        => 'localhost',
                     'login'       => 'cakephpuser',
                     'password'    => 'c4k3roxx!',
                     'database'    => 'my_cakephp_project',
                     'prefix'      => '');
  1. var $default = array('driver' => 'mysql',
  2. 'persistent' => false,
  3. 'host' => 'localhost',
  4. 'login' => 'cakephpuser',
  5. 'password' => 'c4k3roxx!',
  6. 'database' => 'my_cakephp_project',
  7. 'prefix' => '');

$default接続配列は、モデル内で$useDbConfigの値を変更して別な接続を指定しない限り使用されます。例えば、アプリケーションがデフォルトのデータベースに加えて、既存(legacy)の追加データベースも使用しなければいけない、としましょう。$default配列と同形式で$legacyデータベース接続用の配列を作成します。それから、該当するモデルの中でvar $useDbConfig = ‘legacy’とすることで、それを使えるようになります。

必要に合わせて、設定配列の中に、キー/値のペアを書き込んでください。

キー
driver この設定用配列は、データベースのドライバ名を入力する場所です。例えば、mysql, postgres, sqlite, pear-drivername, adodb-drivername, mssql, oracle, odbc などです。
persistent 持続的接続(persistent connection)を使うかどうか設定します。
host データベースサーバのホスト名。(またはIPアドレス)
login アカウントユーザ名
password アカウントのパスワード。
database この接続が利用するデータベース名。
prefix (オプション) データベース内のすべてのテーブルの頭に付ける接頭辞(prefix)です。もしテーブルに接頭辞が付いていないのであれば、指定しないでください。
port (オプション) サーバに接続するためのTCPポート、またはUnix socket。
encoding サーバにSQLステートメントを送信する際に使用するキャラクターセット。(訳注:MySQLで日本語を使うには、"utf8","ujis","sjis"などを設定します。)
schema PostgreSQLデータベースの設定時に、どのスキーマを使うかを指定します。

prefixの設定は、モデルではなく、テーブルに対するものだということを覚えておきましょう。例えば、AppleモデルとFlavorモデルのjoinテーブルを作成する場合、prefix_apples_flavorsという名前になります。(prefix_apples_prefix_flavorsではありません。)そして、prefixの設定は、'prefix_'となります。

この時点で、このマニュアルの付録部分の一覧にある、CakePHPの規約について少し読むのもよいかもしれません。テーブル(そして幾つかのフィールド名)の正しい命名方法を知っておくと、幾つかの機能をすぐに使えるようになり、設定する必要がなくなります。