如何在 TypeORM 中定义 varchar 和 enum?

Posted

技术标签:

【中文标题】如何在 TypeORM 中定义 varchar 和 enum?【英文标题】:How to define varchar and enum in TypeORM? 【发布时间】:2019-12-25 05:00:39 【问题描述】:

我的数据库结构需要在 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;

【问题讨论】:

您可以将stringnumber 用于varchar 和int。还要检查所有可用类型的官方打字稿文档。 好的,谢谢您的回复 【参考方案1】:

数据库中的列类型是从您使用的属性类型推断出来的,例如number 会被转换成整数,string 会被转换成 varchar,boolean 会被转换成 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

【讨论】:

我现在明白了。感谢您的帮助 @firdaus 如果它解决了您的问题,请您批准答案。

以上是关于如何在 TypeORM 中定义 varchar 和 enum?的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有typeorm的nestjs项目中使用外部实体?

如何在 TypeORM 中查询数组

使用 typeorm 在 postgres 中搜索数组中的项目

如何使用 typeorm 实体在 mysql 中使用现有表?

NestJS 基于接口注入自定义 TypeOrm 存储库

如何使用 Typeorm 创建与 Postgres 的连接