Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to enable ENUMs in Symfony 2 / Doctrine

When running doctrine:mapping:import i get an error:

Unknown database type enum requested, Doctrine\DBAL\Platforms\MySqlPlatform may not support it.

It seems I need to set use_native_enum to true some how. However, all documentation and blog posts are refering to Symfony < 1.4. Is there any what would be the solution in Symfony 2?

like image 863
Roel Veldhuizen Avatar asked Nov 29 '11 14:11

Roel Veldhuizen


1 Answers

For Symfony 2 projects, add this to the doctrine dbal configuration in app/config.yml:

doctrine:     dbal:         mapping_types:              enum:       string  

My full doctrine config looks like this:

# 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 adapted from here

Then run:

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

like image 183
Plínio César Avatar answered Oct 02 '22 19:10

Plínio César