ブログ移転しました!

https://lighthouse-dev.github.io/

CakePHP3.xでPostgreSQLの設定

/config/app.phpを修正

'Datasources' => [
    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Postgres',
        'persistent' => false,
        'host' => 'localhost',
        'username' => '★★',
        'password' => '★★',
        'database' => '★★',
        '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' に変える必要がある。

'test' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Postgres',
            ...