如何在TypeORM中定义varchar和enum?

时间:2019-08-20 02:01:29

标签: postgresql typescript nestjs typeorm

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

Database structure

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;
}

1 个答案:

答案 0 :(得分:2)

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

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;
}

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