CakePHP 2.3.0-beta を試す

CakePHP 2.3.0 ベータ版がリリースされたとのこと
http://bakery.cakephp.org/articles/lorenzo/2012/10/28/cakephp_2_3_0-beta_released

ちょっとうれしいお知らせとしては、モデルで biginteger をサポートするとのこと。
PostgreSQL で試したところ、まだプライマリーキーとして biginteger は使えないみたい。
ベータ版だからだろうけど、SQL 構文エラーで止まってしまった。

SQLSTATE[42601]: Syntax error: 7 ERROR:  syntax error at or near "serial"
LINE 2:  "id" bigint serial NOT NULL,

CREATE TABLE 時に "bigserial" となってほしいところが "bigint serial" となってしまった。
Postgres.php の buildColumn() を修正する必要がある。とりあえず修正して手元では動くようになった。

$out = str_replace('integer serial', 'serial', $out);

のような記述があったので、その直下に

$out = str_replace('bigint serial', 'bigserial', $out);

という行を追加しておいた。

追記 (2013-12-25)

CakePHP 2.4.4 で修正されました。
http://bakery.cakephp.org/articles/markstory/2013/12/24/cakephp_2_4_4_released

  • Postgres biginteger primary keys now correctly use the bigserial type.