Я разрабатываю приложение CakePHP, и я хотел бы использовать UUID в качестве первичных ключей, поскольку приложение будет распределено по нескольким базам данных, и я также хотел бы воспользоваться интегрированной структурой ACL в CakePHP 2.1.
Я собираюсь в соответствии с руководство, и я изменил схему БД, следуя
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: ВЫБЕРИТЕ MAX("Аро"."право") КАК "право" ИЗ "общественности"."арос" КАК ". .. ^ ПОДСКАЗКА: Ни одна функция не соответствует заданному имени и типам аргументов.Возможно, вам потребуется добавить явное приведение типов.
Версия CakePHP 2.1.0-бета, и я использую PostgreSQL с типом данных UUID.
Кто-нибудь успешно использовал структуру ACL CakePHP с UUID? Я хотел бы, чтобы это работало с минимальными изменениями в структуре CakePHP, для будущей поддержки этого приложения.
max(uuid)
. 03.02.2012