使用symfony2将mysql枚举迁移到doctrine实体的最佳策略?

时间:2012-05-26 01:46:41

标签: php symfony doctrine

我目前正在将遗留应用程序迁移到symfony2,问题是我有很多mysql枚举列,我知道doctrine不支持枚举数据类型,而且一个解决方法是存储为字符串,但我真的失去了正确排序数据的能力,因为varchars慢很多,我有很多表与枚举数据类型和修改架构将是非常困难的,我有什么选择?你有什么建议可以更顺畅地过渡到symfony2?

2 个答案:

答案 0 :(得分:3)

试试这个对我有用

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')")

答案 1 :(得分:1)

你有两个解决方案

  • 解决方案1:映射到Varchars
  • 解决方案2:定义类型

有关详细信息,请参阅此链接:Mysql Enums doctrine