Enums 如何正确处理枚举?

Enums 如何正确处理枚举?,enums,doctrine-orm,doctrine,migration,symfony4,Enums,Doctrine Orm,Doctrine,Migration,Symfony4,在一个应用程序中,我有一个例子。鉴别器列是一个枚举: /** * Foo * * @ORM\Table(name="foos", ...) * @ORM\Entity * @ORM\InheritanceType("JOINED") * @ORM\DiscriminatorColumn(name="`type`", type="string", columnDefinition="ENUM('bar', 'buz')") * @ORM\DiscriminatorMap({ *

在一个应用程序中,我有一个例子。鉴别器列是一个
枚举

/**
 * Foo
 *
 * @ORM\Table(name="foos", ...)
 * @ORM\Entity
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="`type`", type="string", columnDefinition="ENUM('bar', 'buz')")
 * @ORM\DiscriminatorMap({
 *     "bar" = "Bar",
 *     "buz" = "Buz"
 * })
 */
abstract class Foo
{
    ...
}
条令如预期(首先)起作用。
条令:migrations:diff
命令为表和关系创建迁移,并将鉴别器列正确定义为
ENUM

然后我执行迁移(
原则:迁移:迁移
)。这个模式看起来不错。但是:

当我再次执行
diff
命令(并且不希望有新的迁移)时,会生成一个新的迁移:

final class Version20180619205625 extends AbstractMigration
{
    public function up(Schema $schema) : void
    {
        $this->addSql('ALTER TABLE foos CHANGE type `type` ENUM(\'bar\', \'buz\')');
    }

    public function down(Schema $schema) : void
    {
        $this->addSql('ALTER TABLE tasks CHANGE `type` type VARCHAR(255) DEFAULT NULL COLLATE utf8mb4_unicode_ci');
    }
}
好吧,我执行它。然后重试
diff
命令。并再次生成相同的迁移。。。因此,条令似乎“思考”,专栏仍然是
VARCHAR

我在这里展示了一个继承鉴别器的例子。但实际上,不管列是否是鉴别器,每个
ENUM
列的行为都是相同的

如何解决这个问题?有没有办法让条令正确处理
ENUM
列?