未知数据库类型枚举请求学说

Posted

技术标签:

【中文标题】未知数据库类型枚举请求学说【英文标题】:Unknown database type enum requested doctrine 【发布时间】:2020-10-26 08:10:12 【问题描述】:

我想在 symfony 5 中使用教义从现有数据库中生成实体,但我一直收到错误消息,因为它是全新安装的 symfony 5.1,而我正在使用 maraidb 10.4。

In AbstractPlatform.php line 440:
 Unknown database type enum requested, Doctrine\DBAL\Platforms\mysqlPlatform may not support it.

我正在使用的指南https://symfony.com/doc/current/doctrine/reverse_engineering.html

【问题讨论】:

你应该避免使用枚举类型,而不是导入一个糟糕的解决方案,你应该看看komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is-evil。如果你真的想使用它并且你同意他们将产生的所有问题,你可以创建一个EnumType as a custom mapping type。 【参考方案1】:

Doctrine 无法从数据库中对整个模型进行逆向工程。有些情况是无法处理的——比如你的枚举。您将必须定义自定义类型,以告诉教义它必须如何处理它。

看看这个指南:

-> 滚动到“解决方案 2 定义类型”

https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/mysql-enums.html#solution-1-mapping-to-varchars

【讨论】:

以上是关于未知数据库类型枚举请求学说的主要内容,如果未能解决你的问题,请参考以下文章

Laravel db 迁移 - renameColumn 错误 - 请求了未知的数据库类型枚举

表中的更改列在postgres中具有枚举类型

如何在 symfony 中将教义升级到 2.6 [重复]

复杂数据类型的映射之枚举

请求 Laravel 迁移未知数据库枚举

2022-08-01 第八组 曹雨 泛型 枚举