lighthouse.log

lighthouse.log

CakePHP3.xでPostgreSQLの設定

2017-12-26

はじめに

CakePHP3 ではデフォルトで、Mysql のドライバを参照する設定となっている

そのため、Postgresql を使用予定で php-mysql をインストールしていない場合は、以下のようなエラーが発生する

Database driver Cake\Database\Driver\Mysql cannot be used due to a missing PHP extension or unmet dependency

解決策

/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,

上記のapp.phpの中に、‘default’と同じように ‘test’ 側も

'driver' => 'Cake\Database\Driver\Postgres' に変える必要がある。

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