【问题标题】:How to define a length for a custom type mapping in DBAL?如何在 DBAL 中定义自定义类型映射的长度?
【发布时间】:2019-11-16 03:05:53
【问题描述】:

我在https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/cookbook/custom-mapping-types.html 之后定义了一个自定义映射,它可以工作,但我需要 make:entity 以与字符串相同的方式询问类型的长度。更重要的是,迁移需要遵守长度值。

类型是“MyEncrypted”,它在 MySQL 中变为 varbinary,make:entity 可以做到这一点,但我不想在我觉得我应该能够时必须制作 'MyEncrypted64'、'MyEncrypted1024'、'MyEncrypted65535'只需提供长度。与学说类似:schema:update --force。

需要做什么才能要求和处理长度?

我注意到如果我有 @ORM\Column(type="MyEncrypted", length=37) '37' 确实进入了 $fieldDeclaration var 但 migrate 拒绝确认实体 PHP 文件中的长度更改,在执行“make:migration”时声称没有变化。与学说类似:schema:update --force。

【问题讨论】:

    标签: symfony doctrine migration mapping dbal


    【解决方案1】:

    最后放弃了,只使用了有点不满意(但功能正常)的 longblob 类型,因为 Doctrine 似乎没有可变长度 varbinary 类型的概念。

    在超过 128k 条记录的查询执行中,longblob 的测试似乎比 varbinary 长约 50%(0.16 毫秒对 0.11 毫秒)。它仍然“足够快”,但与纯 SQL 实现相比不太理想。

    【讨论】:

      猜你喜欢
      • 2021-10-30
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 2012-12-23
      相关资源
      最近更新 更多