こんにちは!ぐちです。
CakePHP × PostgreSQL
PHPのフレームワークであるCakePHPですがデフォルトではMySQLへの接続情報が設定されています。システムによってはPostgreSQLへ繋ぐ必要がある場合もありますよね。備忘録としてdatabase.phpの設定をご紹介します。
database.php
database.phpは下記のようにします。
var $postgres = array( 'datasource' => 'Database/Postgres', 'persistent' => 'false', 'host' => 'localhost', 'port' => '5432', 'login' => 'user_name', 'password' => 'password', 'database' => 'db_name', 'schema' => 'public', 'prefix' => '', 'encoding' => 'utf8' );
MySQLはデフォルトで設定されている値を書き換えれば簡単に繋ぐことができますがPostgreSQLの場合は下記の2つを指定しないと以下のようなエラーになります。
- post
- schema
Error: Table posts for model Post was not found in datasource default.
Windowsのローカル環境
PostgreSQLへ繋ぐDDLが必要になります。下記のDDLが壊れていないか存在するかを確認しましょう。
- php_pdo_pgsql.dll
- php_pgsql.dll
Error: Database connection “Postgres” is missing, or could not be created.