Prisma拆分Schema至多文件后执行generate命令失败的配置咨询
Prisma拆分Schema至多文件后执行generate命令失败的配置咨询
我来帮你解决这个问题~你遇到的情况是因为Prisma默认只会读取prisma根目录下的主schema.prisma文件,不会自动扫描子目录里的其他prisma文件,所以需要你显式地在主文件里引入这些拆分出去的模型文件才行,具体操作步骤如下:
- 保持主
schema.prisma在prisma根目录(也就是你现在已经放的位置),不需要再移动它 - 在主
schema.prisma文件的最顶部(或者任意位置,通常放在开头更清晰),添加对每个子模型文件的引用注释,语法是/// <reference path="相对路径" />。比如你有prisma/schema/user.prisma,就添加:
/// <reference path="./schema/user.prisma" /> datasource db { provider = "postgresql" url = env("DATABASE_URL") } generator client { provider = "prisma-client-js" }
如果还有其他子文件(比如post.prisma),就多加一行对应的引用:
/// <reference path="./schema/user.prisma" /> /// <reference path="./schema/post.prisma" />
- 检查子模型文件的写法:子文件里不需要再写
datasource和generator块,只需要定义对应的model即可,比如user.prisma的内容应该是:
model User { id Int @id @default(autoincrement()) name String? email String @unique // 其他字段或关联定义 }
- 完成以上配置后,重新运行
npx prisma generate,Prisma就会识别所有被引用的子模型文件,正常生成客户端代码了
注意要确保引用的相对路径是正确的,路径是相对于主schema.prisma的位置来写的,你的子文件在prisma/schema/目录下,所以路径用./schema/xxx.prisma就没问题。你当前使用的Prisma 6.14.0完全支持这个引用语法,不用担心版本兼容问题。
内容来源于stack exchange
相关产品推荐
相关产品推荐

