[CakePHP] SQLite3を使えるようにする【してやんよ】

  • このエントリーをはてなブックマークに追加

現在リリースされているCakePHPはSQLite2にしか対応しておらず、SQLite3はそのままでは使えないので、使えるようにしてみました。
なのでちょっとメモ。
CakePHP 1.2.3.8166 Stableにで確認。

以前からCPA-LABに独自で作られたデータベースオブジェクトがあるのは知っていました。
CakePHP1.2をSQLite3で動かしてみた。&ダウンロード – CPA-LABテクニカル

しかし、最近のバージョンで追加されたfind時のgroupが使えないなどちょっと困ったので、公式のが無いかなと探してみました。
すると公式のTracに一応ありました。
#3003 (SQLite 3 support) – CakePHP : The Rapid Development Framework for PHP – Trac

では、さっそく導入♪

ダウンロードする

上記のURLから最新のソースとパッチファイルをダウンロードします。
PHP5とPDO関数の導入が必要のようです。まぁそれは当たり前でしょうな。

  • dbo_sqlite3.5.php
  • correct_resultset.dbo_sqlite3.patch

ダウンロードしたファイルはどこか同じディレクトリ内に置いておきます。dbo_sqlite3.5.phpはdbo_sqlite3.phpにリネームします。

パッチを当てる

Linuxの方はダウンロードしたファイルがあるディレクトリをカレントにして下記のコマンドを実行してください。Windowsでは。。。ググってください。

# patch > correct_resultset.dbo_sqlite3.patch

組み込む

パッチを当てたらapp/models/datasources/dboに放り込みます。(ディレクトリが無かったら作ってね!)そして、
app/config/database.phpに設定を書きます。書き方例は下記のとおり。
databaseはフルパスらしいです。

class DATABASE_CONFIG {

    var $default = array(
        'driver' => 'sqlite3',
        'persistent' => false,
        'host' => 'localhost',
        'login' => '',
        'password' => '',
        'database' => '/path/to/database.db'
    );
}

あとがき

CakePHPはなかなかSQLite3には対応してくれないですが、1.3あたりで正式対応するんですかな。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。




コメント

コメントを残す