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

Deno使用Cotton ORM运行时出现Column 'role_id' must have a type错误如何解决?

报错触发原因
  • 你使用的cotton@v0.7.5版本ORM的@Column装饰器无法获取TypeScript编译后丢失的类型信息,必须手动为非主键字段显式指定数据库类型,你当前代码里的role_id、permission_id字段的@Column装饰器均未传入类型参数,因此触发校验报错。
  • 部分旧课程的示例代码可能基于非官方修改版的cotton包编写,因此直接运行官方原版依赖的代码会出现该兼容性问题。
修复方法
  1. 修改role-permission.ts模型文件的代码,为两个普通字段的@Column装饰器补充type参数,数字类型的字段对应设置为int即可:
import {Model, Primary, Column} from "https://deno.land/x/cotton@v0.7.5/mod.ts";

@Model('role_permissions')
export class RolePermission {
    @Primary()
    id!: number;

    @Column({ type: 'int' })
    role_id!: number;

    @Column({ type: 'int' })
    permission_id!: number;
}
  1. 保存文件后重新执行启动命令即可正常运行:
    deno run --allow-net --unstable app.ts

如果后续其他模型也出现同类报错,统一给对应字段的@Column装饰器添加对应类型参数即可,常用类型对应关系:字符串用varchar/text,布尔值用boolean,时间类型用datetime。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 01:54:09