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

如何基于SQL view创建Prisma模型及prisma introspect能否生成Postgres视图模型

问题1:是否可以使用prisma introspect命令为Postgres数据库中的视图自动生成对应模型?

可以,Prisma 3.10.0及以上版本已经原生支持对PostgreSQL视图的自检功能,prisma introspect(现在官方推荐使用别名prisma db pull)会自动识别数据库中的视图并生成对应的Prisma模型。
需要注意默认生成的视图模型会自带@@ignore注解,Prisma会默认忽略该模型的客户端生成,你需要手动删除该注解后才能正常使用视图模型。


问题2:如何基于SQL视图创建对应的Prisma模型?

你可以选择自动生成后调整,也可以手动编写模型,两种方式的操作步骤如下:

方式1:基于自检自动生成

  • 首先确保你使用的Prisma CLI版本≥3.10.0
  • 在PostgreSQL数据库中提前创建好目标SQL视图
  • 执行命令 prisma db pull 完成数据库自检
  • 打开生成的schema.prisma文件,找到对应视图的模型,删除默认添加的@@ignore注解
  • 给模型添加唯一标识符:每个Prisma模型都要求存在唯一主键,你可以给视图中唯一非空的字段添加@id注解,也可以组合多个唯一字段用@@id([字段1, 字段2])的形式定义联合主键
  • 执行prisma generate生成Prisma客户端,之后就可以像操作普通表一样查询视图数据

方式2:手动编写模型

  • 先确认你的SQL视图所有返回字段的名称、类型、是否为空的属性
  • 在schema.prisma中新增模型,模型名可自定义,建议和视图名保持语义一致
  • 逐个定义模型字段,字段属性要和视图返回结果完全匹配
  • 给模型添加主键定义,规则和自动生成场景的要求一致
  • 给模型添加@@map("数据库中实际的视图名称")注解,完成模型名到实际视图名的映射
  • 执行prisma generate生成客户端即可使用

注意:Prisma的迁移工具不会自动管理视图的变更,如果你需要把视图纳入迁移版本管理,需要手动在生成的迁移SQL文件中编写CREATE VIEW、ALTER VIEW等视图操作语句。另外视图默认是只读的,如果你需要通过Prisma对视图做写入操作,需要提前在PostgreSQL中为视图编写对应的INSTEAD OF触发器,否则写入操作会直接报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 21:27:04