Лучшая стратегия для переноса mysql enums на объекты доктрины с symfony2?

В настоящее время я переношу устаревшее приложение на symfony2, проблема в том, что у меня много столбцов перечисления mysql, я знаю, что доктрина не поддерживает типы данных enum и что один способ обхода – хранить в виде строки, но я действительно потерял бы способность правильно сортировать данные, потому что varchars намного медленнее, у меня есть много таблиц с типами данных enum, и изменение схемы было бы очень сложно, каковы мои варианты? Что вы можете предложить, чтобы сделать переход на symfony2 более плавным?

Solutions Collecting From Web of "Лучшая стратегия для переноса mysql enums на объекты доктрины с symfony2?"

У вас есть два решения

  • Решение 1. Сопоставление с Varchars
  • Решение 2. Определение типа

для получения дополнительной информации см. эту ссылку: доктрина Mysql Enums

Попробуй, это сработало для меня

http://symfony.com/doc/current/reference/configuration/doctrine.html#reference-dbal-configuration

в файле app / config / config.yml добавить

mapping_types: enum: string 

например, ниже

 doctrine: dbal: driver: %database_driver% host: %database_host% port: %database_port% dbname: %database_name% user: %database_user% password: %database_password% charset: UTF8 mapping_types: enum: string 

то вы можете использовать, например,

 @ORM\Column(type="string", columnDefinition="ENUM('A', 'B')")