如何通过学说迁移生成数据库列类型“文本”?

问题描述 投票:0回答:1

我使用 ORM 版本 2.20.1 和迁移 3.3.1。在带有 php8.2 的 Symfony6 项目中。

我的实体具有以下属性:

use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
class CompanyDetail
{
    #[ORM\Id]
    #[ORM\GeneratedValue]
    #[ORM\Column]
    private ?int $id = null;

    #[ORM\Column(type: Types::STRING, length: 255)]
    private string $name;

    #[ORM\Column(type: Types::TEXT, length: 65535)]
    private string $registration;
    [...]

当我使用通常的

bin/console do:mi:di
创建迁移文件时,注册字段的列始终是 VARCHAR(500),如下所示:
registration VARCHAR(500) NOT NULL,

实现文本栏的正确设置是什么?

doctrine-orm doctrine-migrations
1个回答
0
投票

我做了以下事情,让它以某种方式发生: 我升级了所有学说包:

        "doctrine/annotations": "^2.0.2",
        "doctrine/dbal": "^4.2.1",
        "doctrine/doctrine-bundle": "^2.13.1",
        "doctrine/doctrine-fixtures-bundle": "^4.0.0",
        "doctrine/doctrine-migrations-bundle": "^3.3.1",
        "doctrine/orm": "^3.3.1",

然后我将属性定义为没有任何长度的文本:

    #[ORM\Column(type: Types::TEXT)]
    private string $registration;

这在迁移中给了我一个 LONGTEXT 字段。这比我需要的要长得多,但由于这是一张小桌子,我就拿它吧。

但是,如果有人知道如何创建文本字段,我仍然会很感激。

© www.soinside.com 2019 - 2024. All rights reserved.