如何在 TypeORM 中定义 varchar 和 enum?
Posted
技术标签:
【中文标题】如何在 TypeORM 中定义 varchar 和 enum?【英文标题】:How to define varchar and enum in TypeORM? 【发布时间】:2019-12-25 05:00:39 【问题描述】:我的数据库结构需要在 TypeScript 中使用 TypeORM 将变量声明为 varchar
、int
和 enum
。但是在 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;
【问题讨论】:
您可以将string
和number
用于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 在 postgres 中搜索数组中的项目