院生エンジニアのにっき

  • Change style to Blue
  • Change style to Red
  • Change style to Green
  • Change style to Pink

CakePHP1.2でのDATABASE_CONFIGの設定   2008-01-02

CakePHP1.2のデータベースの設定値には

  • persistent
  • port
  • schema
  • encoding

4種類のプロパティが追加されました。

persistentは持続的接続のON/OFF、portは接続の際のポート番号が、schemaが何に使われるプロパティか分からなかったのでちょっと調べてみました。

CakePHP 1.2でPostgreSQLを使うとエラーが出る | Shin x blogなどを読んだ感じ、schemaはPosgreSQLを利用時に関係あるようです。

実際CakePHP1.2のlibsディレクトリの中身を「schema」でgrepしてみると、/libs/model/datasources/dbo/の中の「dbo_db2.php」「dbo_mssql.php」「dbo_mysql.php」「dbo_postgres.php」で利用されているようでした。

またその中のDboクラスの$_baseConfigプロパティを見てみると、db2は""、mssqlとmysqlは利用されていないずで、PostgreSQLのみ"public"となっていました。

PostgreSQLのschemaについてですが、スキーマとビューのテスト (独白)を読んだ感じdatabaseとtableの中間的役割の名前空間といった感じでしょうか。

特定のユーザーでテーブルを見た場合は同じ名前のテーブルでも結果が変わって見えたりといったことが出来るようです。

デフォルトではpublicが用いられるそうで、DATABASE_CONFIGの設定値としては空文字を入れるとエラーになってしまうのでnullにするか使わないのであればpublic、値を削除すればいいそうですね($_baseConfigで上書きされる)。

ちなみにMySQL使用時にencodingにてUTF-8を利用したい場合はUTF-8ではなく"UTF8"にしないと文字化けしますのでご注意を。


コメントを書く