Доктрина: модели с наследованием column_aggregation дважды появляются в SQL
Кто-нибудь это заметил?
Всякий раз, когда модель использует 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 ответ
Я только что столкнулся с этим сам. Это похоже на doctrine:build-sql
глючит
Одна из самых сумасшедших вещей, которые я обнаружил во время расследования, это то, что doctrine:insert-sql
даже не использует schema.sql. Он динамически генерирует и запускает SQL на основе определений модели.
Похоже, это известная ошибка, которая не будет исправлена в Доктрине 1: