【问题标题】:TypeORM does not parse Enum to the PostgreSQL typeTypeORM 不会将 Enum 解析为 PostgreSQL 类型
【发布时间】:2022-01-06 10:33:50
【问题描述】:

实体:

@Entity()
export class MyEntity {
  @Column({
    type: 'enum',
    enum: MyEnum,
    default: MyEnum.DEFAULT,
  })
  type: MyEnum;
}

枚举:

export enum MyEnum {
  DEFAULT = 1,
  NOT_DEFAULT = 2
}

由 TypeORM 创建的迁移:

await queryRunner.query(
  `CREATE TYPE "my_enum_type_enum" AS ENUM('1', '2')`,
);
await queryRunner.query(
  `ALTER TABLE "my_table" ADD "type" "my_enum_type_enum" NOT NULL DEFAULT '1'`,
);

在代码中创建实体可以正常工作,如下例所示:

my_entity.type = MyEnum.DEFAULT; // "1" and "DEFAULT" does not work, but 1 (int) works

但是当我尝试通过存储库保存时出现错误:

invalid input value for enum my_enaum_type_enum: "DEFAULT"

我在这里错过了什么?

【问题讨论】:

    标签: typescript parsing enums migration database-migration


    【解决方案1】:

    完全按照文档修复:https://typeorm.io/#/entities/enum-column-type

    export enum MyEnum {
      DEFAULT = "default",
      NOT_DEFAULT = "not_default"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      相关资源
      最近更新 更多