Доктрина: модели с наследованием column_aggregation дважды появляются в SQL - PullRequest
1 голос
/ 22 мая 2011

Кто-нибудь это заметил?

Всякий раз, когда модель использует column_aggregation (наследование), schema.sql имеет 2 команды CREATE TABLE, одна создает базовую таблицу, а другая (кроме полей) добавляет индекс для столбца наследования

CREATE TABLE Prop (id INT AUTO_INCREMENT, opt_property_type SMALLINT UNSIGNED DEFAULT 251 NOT NULL, property_nature VARCHAR(255), INDEX opt_property_type_idx (opt_property_type), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;

CREATE TABLE Prop (id INT AUTO_INCREMENT, opt_property_type SMALLINT UNSIGNED DEFAULT 251 NOT NULL, property_nature VARCHAR(255), INDEX Prop_property_nature_idx (property_nature), INDEX opt_property_type_idx (opt_property_type), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;

Обратите внимание на включение INDEX Prop_property_nature_idx (property_nature) во второй оператор

Если кто-то еще сталкивается с этим, я буду регистрировать ошибку. Спасибо

1 Ответ

0 голосов
/ 13 июля 2011

Я только что столкнулся с этим сам. Кажется, что doctrine:build-sql глючит.

Одна из самых сумасшедших вещей, которые я обнаружил при исследовании, это то, что doctrine:insert-sql даже не использует schema.sql . Он динамически генерирует и запускает SQL на основе определений модели.

Похоже, это известная ошибка, которая не будет исправлена ​​в Доктрине 1:

...