#sql #inheritance #symfony1 #doctrine #column-aggregation
#sql #наследование #symfony1 #доктрина #агрегация столбцов
Вопрос:
Кто-нибудь заметил это?
Всякий раз, когда модель использует column_aggregation (наследование), схема.в sql есть 2 команды СОЗДАНИЯ ТАБЛИЦЫ, одна создает базовую таблицу, а другая (помимо полей) добавляет индекс в столбец наследования
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 на основе определений моделей.
Похоже, это известная ошибка, и она не будет исправлена в Doctrine 1: