web-dev-qa-db-ja.com

Symfony 2でENUMを有効にする方法/ Doctrine

doctrine:mapping:importを実行すると、エラーが発生します。

不明なデータベースタイプの列挙が要求されました。Doctrine\ DBAL\Platforms\MySqlPlatformはこれをサポートしていない可能性があります。

use_native_enumtrueに設定する必要があるようです。ただし、すべてのドキュメントとブログ投稿はSymfony <1.4を参照しています。 Symfony 2の解決策はありますか?

38
Roel Veldhuizen

Symfony 2プロジェクトの場合、これをapp/config.ymlのdoctrine dbal設定に追加します:

doctrine:
    dbal:
        mapping_types: 
            enum:       string 

私の完全なdoctrine configは次のようになります:

# 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

here から適応したコード

次に実行します:

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

118
PutzKipa