php 请求未知的数据库类型枚举,Doctrine\DBAL\Platforms\MySQL57Platform可能不支持它,Symfony

mkshixfv  于 2023-10-15  发布在  PHP
关注(0)|答案(2)|浏览(132)

我创建了一个新的symfony4项目。使用php bin/console make:user创建用户实体,然后尝试使用php bin/console make:migration迁移。但是错误突然出现
第434行:
请求未知的数据库类型枚举,Doctrine\DBAL\Platforms\MySQL57Platform可能不支持它。
奇怪的是User实体没有任何enum类型,而是有一个json列的角色,我想这就是原因。

/**
 * @ORM\Column(type="json")
 */
 private $roles = [];

我已经看到了一些答案为laravel类似的问题,但不知道如何解决它在symfony4.

91zkwejq

91zkwejq1#

无法重现您的问题。但无论如何,你可以设置枚举类型在学说。yaml喜欢

doctrine:
    dbal:
       .....
        mapping_types:
            enum: string

下面是Symfony文档中的相应部分。

wkftcu5l

wkftcu5l2#

要解决这个问题,您可以在迁移时注册该类型Map:

DB::connection()->getDoctrineSchemaManager()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');

你也可以在app\Providers\AppServiceProvider.php上注册它。

public function boot() {
        // ...

        DB::connection()
            ->getDoctrineSchemaManager()
            ->getDatabasePlatform()
            ->registerDoctrineTypeMapping('enum', 'string');

        // ....
    }

来源:https://github.com/doctrine/dbal/issues/3161#issuecomment-542814085

相关问题