首页 > 解决方案 > 如何在 ORM Symfony 4 中将列的数据类型从 STRING 更改为 TEXT?

问题描述

我通过实体的注释定义了我的表信息。所以我想将以下列更改为 TEXT 而不是 STRING。所以我有这个:

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $category;

我把它改成这样:

    /**
     * @ORM\Column(type="text")
     */
    private $category;

我希望它成为一个 TEXT,所以迁移后我检查了我的数据库,它说它是一个 LONGTEXT。我不知道这怎么可能,但在参考我的迁移之前,我想知道如何将其设为 TEXT 而不是 LONGTEXT。

编辑:我正在查看迁移文件,我看到了这个: $this->addSql('ALTER TABLE cabinet CHANGE category category LONGTEXT NOT NULL');

我从来没有输入过 LONGTEXT,所以我不知道 Doctrine 是从哪里得到的。

标签: mysqldoctrine-ormdoctrinesymfony4

解决方案


答案似乎也是给出 TEXT 的长度(我认为它被定义为一个固定值),所以@ORM\Column(type="text")你应该做@ORM\Column(type="text", length=65535). 由于this other SO question,我能够找到这个答案。


推荐阅读