web-dev-qa-db-fra.com

Comment activer les ENUM dans Symfony 2 / Doctrine

Lors de l'exécution doctrine:mapping:import j'obtiens une erreur:

Énumération de type de base de données inconnue demandée, Doctrine\DBAL\Platforms\MySqlPlatform peut ne pas la prendre en charge.

Il semble que je doive définir use_native_enum à true un peu comment. Cependant, toute la documentation et les articles de blog font référence à Symfony <1.4. Existe-t-il une solution à Symfony 2?

38
Roel Veldhuizen

Pour les projets Symfony 2, ajoutez ceci à la configuration doctrine dbal dans app/config.yml:

doctrine:
    dbal:
        mapping_types: 
            enum:       string 

Ma configuration complète doctrine ressemble à ceci:

# Doctrine Configuration
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
            set: string
            varbinary: string
            tinyblob: text

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        auto_mapping: true

Code adapté de ici

Exécutez ensuite:

app/console doctrine:schema:update --force --dump-sql --ansi

118
PutzKipa