Slavenin999
@Slavenin999
программист php/erlang/elixir/js

Как в doctrine 2 совместить innodb и myisam?

Доброго времени суток, Хабр!

Возникла надобность в совмещении двух движков. Надобность зовётся пространственный индекс (spatial index), innodb такой тип индексов не поддерживает, поэтому нужно использовать myisam. И всё бы хорошо, но таблица в которой находится поле с типом polygon имеет связь через m2m к другой таблице и при обновлении схемы доктрина упорно пытается создать внешний ключ от m2m к таблице с индексом, хотя в настройках таблицы прописан движок myisam
Ent:
    type: entity
    table: MyTable
    options:
        engine: MyISAM


Как объяснить доктрине, что не нужно создавать внешний ключ?
  • Вопрос задан
  • 2413 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
mysqlserverteam.com/innodb-spatial-indexes-in-5-7-...

Внешний ключ это реакция на связанную сущность. Уберите связи и все будет хорошо. Или откажитесь от schema:update и обновляйте все только миграциями (migration:diff и там убирать генерацию ключей ненужных).

К сожалению другого решения проблемы на данный момент нет. Разве что обновиться на свой страх и риск на тестовую версию mysql и остаться на innodb или перекочевать на postgresql.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы