提问人:ShinDongJun 提问时间:10/17/2023 更新时间:10/17/2023 访问量:40
如何在mysql中使用枚举数组作为TypeORM
How to use enum array in mysql as TypeORM
问:
我正在使用 NestJS,我正在用 typeorm 制作一个实体。 为 user.entity 创建角色时出现问题。
如果使其像附加的代码一样,则将收到如下所示的mysql语法错误。(代码阶段中没有 typeorm 语法错误。因为 mysql 不支持枚举数组。
@Entity('user')
export class UserEntity extends CoreEntity {
...
@Column({
type: 'enum',
enum: Role,
array: true,
default: [Role.User],
})
@IsString()
public roles!: Role[];
...
}
查询失败:ALTER TABLE ADD 枚举数组 ('User', 'Admin') NOT NULL DEFAULT 'User'
错误:user
roles
错误:您的 SQL 语法中有错误;检查与您的MySQL服务器版本相对应的手册,了解在'array ('User', 'Admin') NOT NULL DEFAULT 'User'' at line 1
我想了几种解决方案。
将 RDBMS 更改为支持枚举数组的 Postgres。
分隔角色表,并使用用户 N:M 联接。
另存为字符串类型,并在加载时注入拆分转换。
我把它变成一个对象,并将其保存为json类型。
我想知道什么是正确的解决方案......
答: 暂无答案
评论
array
array: true