如何在 TypeORM 中定义 varchar 和 enum?

fir*_*aus 4 postgresql typescript typeorm nestjs

我有数据库结构需要将变量声明为varchar, int, 并enum在 TypeScript 中使用 TypeORM。但是在 TypeScript 中没有数据类型 varchar 和 int。我该如何申报?

数据库结构

import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";

@Entity()
export class User {
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    account_id: varchar;

    @Column()
    email: varchar;

    @Column()
    phone_number: varchar;

    @Column()
    address: varchar;

    @Column()
    status: enum;

    @Column()
    current_id: varchar;
}
Run Code Online (Sandbox Code Playgroud)

ace*_*ndr 8

数据库中的列类型是从您使用的属性类型中推断出来的,例如,数字将转换为整数,字符串将转换为 varchar,布尔值将转换为 bool 等。但是您可以通过将列类型隐式指定到@列装饰器。

import {Entity, Column, PrimaryGeneratedColumn} from "typeorm";

@Entity()
export class Photo {

    @PrimaryGeneratedColumn()
    id: number;

    @Column({
        length: 100
    })
    name: string;

    @Column("text")
    description: string;

    @Column()
    filename: string;

    @Column("double")
    views: number;

    @Column()
    isPublished: boolean;
}
Run Code Online (Sandbox Code Playgroud)

由于您已经在使用 typeorm,您可以使用此处定义的类型:https : //github.com/typeorm/typeorm/blob/master/docs/entities.md#column-types