CakePHP의 데이터베이스 설정은 app/config/database.php 파일을 이용한다. app/config/database.php.default 파일을 열어보면 예제를 볼 수 있다.
var $default = array('driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'cakephp',
'password' => 'password',
'database' => 'cakephp',
'prefix' => 'cp_');
CakePHP의 데이터베이스 연결은 model에서 $useDbConfig 프로퍼티에 다른 연결을 설정하지 않으면, 데이터베이스 연결에 $default 연결을 사용한다.
만일 어플리케이션에 다른 데이터베이스 연결을 추가한다면, $default와 같은 배열을 다른 이름으로 하나 더 만들고, 예를 들면 $legacy, 이를 사용하는 model에서 $useDbConfig = ‘legacy’; 를 설정하여 사용한다.
Key | Value
driver | 데이터베이스 드라이버의 이름이다. 다음 이름을 사용할 수 있다.
| mysql, postgress, sqlite, pear-drivername,
| adodb-drivername, mssql, oracle, odbc
persistent | 데이터베이스에 persistent 연결을 사용할 것인지를 true,
| false로 표시한다.
host | 데이터베이스 서버의 hostname 또는 ip 주소
login | 데이터베이스 계정의 username
password | 데이터베이스 계정의 암호
database | 연결할 데이터베이스의 이름
prefix | 데이터베이스의 테이블 이름에 사용하는 prefix 값
| prefix를 사용하지 않으면 비워둔다.
port | 데이터베이스 서버와 연결에 사용할 TCP 포트값
encoding | 데이터베이스 서버에 보낼 SQL 문장의 character set
schema | postgressSQL을 사용할 때 사용할 schema를 지정한다.
prefix는 model이 아닌 테이블을 위한 것이다. 예를 들어 Apple, Flavor 모델을 위해서 join 테이블을 만든다면, 이들의 이름은 prefix_apples_prefix_flavors 가 아닌 prefix_apples_flavors가 되어야 한다, 그리고 prefix 설정은 ‘prefix_’ 로 적는다.