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



我目前正在将旧版应用程序迁移到symfony2,问题是我有很多mysql枚举列,我知道该学说不支持枚举数据类型,一种解决方法是存储为字符串,但我真的会失去正确排序数据的能力,因为varchars要慢得多, 我确实有很多带有枚举数据类型的表,修改架构真的很难,我有什么选择?你能建议什么能让过渡到symfony2更加顺利?

试试这个它对我有用

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

然后你可以使用例如

@ORMColumn(type="string", columnDefinition="ENUM('A', 'B')")

你有两个解决方案

  • 解决方案 1:映射到瓦尔查尔
  • 解决方案 2:定义类型

有关更多信息,请参阅此链接: Mysql 枚举原则

最新更新