TypeORM 生成奇怪的“无版本”UUID

Posted

技术标签:

【中文标题】TypeORM 生成奇怪的“无版本”UUID【英文标题】:TypeORM generating strange 'versionless' UUID 【发布时间】:2021-11-21 02:59:21 【问题描述】:

我在实体定义中使用它:

@PrimaryGeneratedColumn('uuid')
Id: string;

并获得如下 UUID:

C17D188A-E91E-EC11-AAF7-0AB75295BBB4

就这里第 3 组字符的第一个字符而言,'E' - 这应该是 UUID v14 - 哪个不存在? TypeORM 是如何生成 UUID 的?

【问题讨论】:

它们都是v14吗?还是版本似乎从一个 UUID 更改为另一个?可能是生成或显示的字节顺序问题。 【参考方案1】:

为了回答这个问题,TypeORM 利用符合 RFC4122 的 UUID v4 生成器为uuid-type 列生成字符串as seen here。

无论如何,如果数据库支持,@PrimaryGeneratedColumn('uuid') 装饰器会将列映射到 uuid 数据库字段类型。可能是您的数据库引擎很可能没有生成符合 uuidv4 的 UUID。

【讨论】:

以上是关于TypeORM 生成奇怪的“无版本”UUID的主要内容,如果未能解决你的问题,请参考以下文章

NestJS + TypeORM 中的 JoinTable 问题

TypeORM 不会在由 TypeORM 创建的项目中生成迁移

TypeORM 生成空迁移

typeORM 未发现数据库架构更改 - 无法生成迁移。要创建新的空迁移,请使用“typeorm migration:create”命令

使用 TypeORM getManyWithCount 如何生成 PageInfo 进行分页

当电子 ABI 与已安装节点不同时,无法生成 TypeORM 迁移