关于我的申请的一些背景知识:
问题:如果我运行命令migrations:diff
以从我的实体类中的更改生成迁移,则会出现以下异常:
[Doctrine\DBAL\DBALException] Unknown column type "json" requested.
Any Doctrine type that you use has to be registered with \Doctrine\DBAL\Types\Type::addType(). You can get a list of all the known types with \Doctrine\DBAL\Types\Type::getTypesMap().
答案 0 :(得分:5)
问题是doctrine/dbal
版本2.5.x
不支持MySQL中的JSON字段。
将doctrine/dbal
中composer.json
的版本归结为^2.6
,它应该有效。请务必在release changelog
答案 1 :(得分:2)
问题是因为数据库中的旧列有评论(DC2Type:json)
。我将其更改为(DC2Type:json_array)
并且确实有效。
为什么会出现此问题?虽然doctrine正在计算实体映射与数据库列和实际数据库列之间的DIFF,但Doctrine会解析MySQL列注释((DC2Type:json)
)并验证json
类型。由于较新的Doctrine版本,您必须使用json_array
而不是json
,Doctrine库会抛出异常。