CakePHP3でPostgreSQLの設定方法
以下のファイルで、DBの設定を記述する。
/[sample_dir]/config/app.php
記載内容は以下のとおり。(一部抜粋)
driverをPostgresに変更して、★★の部分は任意の内容に書き換える。
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres',
'persistent' => false,
'host' => 'localhost',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'nonstandard_port_number',
'username' => '★★',
'password' => '★★',
'database' => 'test',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
'log' => false,
CakePHP3ではデフォルトで、Mysqlのドライバを参照する設定となっています。
そのため、Postgresqlを使用予定でphp-mysqlをインストールしていない場合は、以下のようなエラーが発生します。
Database driver Cake\Database\Driver\Mysql cannot be used due to a missing PHP extension or unmet dependency
上記と同ファイル(app.php)内にある'default'と同様の'test'側も'driver' => 'Cake\Database\Driver\Postgres'に変える必要があります。