no-image

SQLiteでcreateTables

SQLiteでどうしてもDB_DataObjectのcreateTablesが使いたかったので動作しない原因を追究。

最初はDSNから引くデータベース名にパスが含まれているのが原因だと思っていたけどそれだけじゃなくて、ソースを辿っていったらfactoryパターンで呼ばれるSQLite向けのchildクラス(っていうのか?)にカラムの情報を抜き出すmethod(tableInfo)が存在しない事に気づく(grepするとmysqlやmssqlやpgsqlにはある)。で、factoryになってる親クラスDB::commonを調べるとreturnすべき値の形式が書いてあったので思い切ってPEARのSQLiteのソースに自作のtableInfoを作成。実行したらうまく動きました。自分でもかなりびっくり。

SQLiteでDB_DataObjectのテーブルクラス自動生成したいよぉっていう人はtableInfo作りましょう。まぁ、俺でも1時間くらいで作れたんで次回バージョンアップ時には改善されていそうですが。