【问题标题】:typeORM: "message": "Data type \"Object\" in \"..." is not supported by \"postgres\" database."typeORM: "message": "\"postgres\" 数据库不支持 \"..." 中的数据类型 \"Object\"。"
【发布时间】:2021-01-28 17:04:17
【问题描述】:

给定以下实体定义:

@Entity()
export class User extends BaseEntity {
  @Column({ nullable: true })
  name!: string | null;
  
  @Column()
  age!: number;
}

出现如下错误:

typeORM:   "message": "Data type \"Object\" in \"User.name" is not supported by \"postgres\" database."

...

name: 'DataTypeNotSupportedError',
  message:
   'Data type "Object" in "User.name" is not supported by "postgres" database.' }

查看构建时,我看到 TS 发出的元数据将其作为对象处理:

__decorate([
    typeorm_1.Column({ nullable: true }),
    __metadata("design:type", Object)
], User.prototype, "name", void 0);

我做错了什么?

【问题讨论】:

  • 我找到了这个问题的答案here

标签: node.js typescript postgresql typeorm reflect-metadata


【解决方案1】:

问题出在这部分:

@Column({ nullable: true })
name!: string | null;

创建联合类型时,反射类型将为Object。 克服它的一种简单方法是执行以下操作:

@Column({ nullable: true })
name?: string;

【讨论】:

    【解决方案2】:

    您需要明确提供数据类型。

    @Column({ type: 'varchar', nullable: true })
    name: string | null;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多