CakePHP & PHP 2007/11/19 08:56
CakePHP 1.2でPostgreSQLを使うとエラーが出る
あ,そうだ。PostgreSQL だともうなんだか色々エラーが出てるので諦めちゃいました……。
同じエラーかどうか分かりませんが、同じような現象があったので。
CakePHP1.2.0.5875 pre-betaでPostgreSQLに接続しようとすると以下のようなエラーが出ました。
PHP:
原因は[app/config/database.php]に追加された「schema」パラメータです。このパラメータを使うとPostgreSQLにてschemaを指定できるのですが、デフォルトの設定では空文字になっており、それをそのままDBへ発行するのでSQLエラーとなります。
解決策としてはschemaパラメータにschemaを指定します。テーブル生成時等にschemaを指定しなければデフォルトで「public」になります。個別にschemaを指定している場合はそれを設定します。
[app/config/database.php]
PHP:
-
class DATABASE_CONFIG {
-
'driver' => 'postgres',
-
'persistent' => false,
-
'host' => 'localhost',
-
'port' => '',
-
'login' => '1x1',
-
'password' => 'pass',
-
'database' => 'inquiry',
-
// 'schema' => '',
-
'schema' => 'public', <--- schema
-
'prefix' => '',
-
'encoding' => ''
-
);
-
}
なおschemaパラメータを指定しない場合もpublicが使われます(厳密に言うとDboPostgresで定義されている値が使われます。)つまりschemaパラメータを削除してしまう手もありますが、内部動作は変わる可能性があるので、database.phpで明確に指定しておいた方が無難でしょう。
■Related Posts
- CakePHP解説本を書きました
- CakePHP1.1.12.4205&1.2.0.4206_devリリース
- CakePHP Screencastまとめ
- CakeMatsuriにまつわる7つの疑問
- CakePHPのコーディング規約




