Next.js中Prisma数据填充脚本执行失败求助
解决Next.js中
npx prisma db seed找不到@/generated的问题 问题原因
ts-node默认不识别Next.js配置的@路径别名,导致seed脚本无法解析@/generated/prisma这个导入路径。
解决方案
方案1:用tsconfig-paths让ts-node识别路径别名
- 安装依赖:
npm install -D tsconfig-paths
- 修改
prisma.config.ts中的seed命令,添加tsconfig-paths/register来加载路径别名配置:
// prisma.config.ts import "dotenv/config"; import path from 'node:path' import type { PrismaConfig } from 'prisma' export default { schema: path.join('prisma'), migrations: { seed: 'ts-node -r tsconfig-paths/register prisma/db/seed.ts' } } satisfies PrismaConfig
- 确保你的
tsconfig.json中已经配置了@的路径映射(Next.js项目默认会有):
{ "compilerOptions": { "paths": { "@/*": ["./src/*"] } } }
- 重新执行seed命令:
npx prisma db seed
方案2:改用相对路径导入PrismaClient
直接修改prisma/db/seed.ts中的导入语句,用相对路径代替@别名:
// prisma/db/seed.ts // 替换原来的@/generated/prisma为相对路径 import { PrismaClient } from '../../src/generated/prisma'; import instrumentSeeder from "./seeders/instrument"; // 剩余代码不变...
之后重新执行seed命令即可。
额外检查
- 确保已经执行过
npx prisma generate生成Prisma Client,确认src/generated/prisma目录存在且包含正确的文件。 - 确认你的
DATABASE_URL环境变量配置正确,能正常连接数据库。
内容的提问来源于stack exchange,提问作者LVC
相关产品推荐
相关产品推荐

