You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeORM中是否不支持smallserial、serial、bigserial等serial类型?

TypeORM中PostgreSQL的serial系列类型报错解决方案

在PostgreSQL环境下使用TypeORM创建实体时,若尝试将smallserial、serial或bigserial指定为@PrimaryGeneratedColumn的类型,会触发TypeScript类型错误:'Type "smallserial" is not assignable to type'。这是因为TypeORM的官方类型定义未将这些PostgreSQL原生serial类型纳入允许的枚举值,但可以通过以下两种方式解决:

方案一:使用TypeORM适配的替代配置

serial系列类型本质是PostgreSQL的语法糖(自增整数+绑定序列),TypeORM提供了等价的配置方式:

  • 替代smallserial:使用smallint类型+自增策略
  • 替代serial:使用int类型+自增策略
  • 替代bigserial:使用bigint类型+自增策略

示例代码(以smallserial为例):

import { Entity, PrimaryGeneratedColumn } from "typeorm";

@Entity()
export class YourEntity {
  @PrimaryGeneratedColumn({ type: 'smallint', generated: true, generationStrategy: 'increment' })
  id: number;
}

方案二:强制绕过TypeScript类型检查

如果需要直接使用PostgreSQL原生的serial类型,可以通过类型断言绕过TypeScript的类型校验:

示例代码(以smallserial为例):

import { Entity, PrimaryGeneratedColumn } from "typeorm";

@Entity()
export class YourEntity {
  @PrimaryGeneratedColumn({ type: 'smallserial' as const })
  id: number;
}

两种方案最终生成的数据库表结构效果与直接使用serial系列类型一致,都会自动创建对应的自增序列。

内容的提问来源于stack exchange,提问作者mubashir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 00:42:06