私は CakePHP アプリを開発しています。アプリケーションは複数のデータベースに分散されるため、UUID を主キーとして使用したいと考えています。また、CakePHP 2.1 の統合 ACL フレームワークも利用したいと考えています。
私はチュートリアルに従って進んでおり、 DBスキームを次のように変更しました
CREATE TABLE acos (
id uuid NOT NULL,
parent_id uuid DEFAULT NULL,
model VARCHAR(255) DEFAULT '',
foreign_key uuid DEFAULT NULL,
alias VARCHAR(255) DEFAULT '',
lft uuid DEFAULT NULL,
rght uuid DEFAULT NULL,
PRIMARY KEY (id)
);
CREATE TABLE aros_acos (
id uuid NOT NULL,
aro_id uuid NOT NULL,
aco_id uuid NOT NULL,
_create CHAR(2) NOT NULL DEFAULT 0,
_read CHAR(2) NOT NULL DEFAULT 0,
_update CHAR(2) NOT NULL DEFAULT 0,
_delete CHAR(2) NOT NULL DEFAULT 0,
PRIMARY KEY(id)
);
CREATE TABLE aros (
id uuid NOT NULL,
parent_id uuid DEFAULT NULL,
model VARCHAR(255) DEFAULT '',
foreign_key uuid DEFAULT NULL,
alias VARCHAR(255) DEFAULT '',
lft uuid DEFAULT NULL,
rght uuid DEFAULT NULL,
PRIMARY KEY (id)
);
しかし、今私はエラーが発生しています:
エラー: SQLSTATE[42883]: 未定義の関数: 7 エラー: 関数 max(uuid) が存在しません 行 1: SELECT MAX("Aro"."rght") AS "rght" FROM "public"."aros" AS ". .. ^ ヒント: 指定された名前と引数の型に一致する関数はありません. 明示的な型キャストを追加する必要があるかもしれません.
CakePHP のバージョンは 2.1.0-beta で、UUID データ型の PostgreSQL を使用しています。
UUID で CakePHP ACL フレームワークをうまく使用した人はいますか? このアプリの将来のサポートのために、CakePHP フレームワークの最小限の変更でこれを機能させたいと考えています。