迁移MySQL的枚举教义实体Symfony2的最佳策略是什么?(Best strategy for

2019-10-16 18:16发布

我目前在迁移到Symfony2的遗留应用程序的过程中,问题是,我有很多的MySQL枚举列的,我知道,教义不支持枚举数据类型和一个解决方法是存储为一个字符串,但我真的会失去对数据正确地分类的能力,因为VARCHAR处理是慢了很多,我也有很多的表与枚举数据类型和修改架构将是真的很辛苦,我有哪些选择? 你能表明将进行转变,Symfony2的顺畅了很多?

Answer 1:

你有两个解决方案

  • 解决方案1:映射到VARCHAR处理
  • 方案2:定义类型

有关详细信息,请参考以下链接: Mysql的枚举主义



Answer 2:

试试这个它为我工作

http://symfony.com/doc/current/reference/configuration/doctrine.html#reference-dbal-configuration

在app /配置/ 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')")


文章来源: Best strategy for migrating mysql enums to doctrine entities with symfony2?