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

Prisma对接MySQL时长Text类型替代方案及报错解决

Prisma对接MySQL映射长文本字段方案

报错原因

你遇到的error: Type "TEXT" is neither a built-in type, nor refers to another model, custom type, or enum.报错,是因为Prisma Schema使用的是跨数据库兼容的抽象内置类型,不能直接写MySQL原生的TEXT作为字段类型。
MySQL所有长度的文本类型,都通过Prisma内置的String基础类型,搭配@db.*原生类型修饰符映射实现,不需要找额外替代方案。

具体映射规则

根据你需要的文本长度,选择对应的修饰符即可:

  • 普通TEXT(单字段最大存储64KB):字段后加@db.Text
  • MEDIUMTEXT(单字段最大存储16MB):字段后加@db.MediumText
  • LONGTEXT(单字段最大存储4GB):字段后加@db.LongText

配置示例

在schema.prisma文件中按如下方式定义模型即可:

model Article {
  id          Int     @id @default(autoincrement())
  title       String  @db.VarChar(200)
  // 映射为MySQL的TEXT类型,存摘要类短长文本
  summary     String? @db.Text
  // 映射为MySQL的MEDIUMTEXT类型,存正文类中等长度文本
  content     String  @db.MediumText
  // 映射为MySQL的LONGTEXT类型,存超大文本内容比如原始备份、富文本全量内容
  origin_data String? @db.LongText
}

生效操作

配置完成后执行以下命令让配置生效:

  1. 执行prisma generate更新Prisma Client的类型定义
  2. 如果需要同步表结构,执行prisma db push直接同步,或者通过prisma migrate dev生成迁移文件后执行

不要直接在字段类型位置写TEXT/MEDIUMTEXT/LONGTEXT,这些都不是Prisma的内置字段类型,必须作为@db修饰符的参数使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:42:10