Next 13 + Prisma 数据库seed.ts失效及类型错误排查
问题排查与解决方案
1. API 404 错误原因及修复
Next 13 中 API 路由的结构取决于你使用的是 App Router 还是 Pages Router:
- 若用 App Router:API 文件必须放在
app/api/seed/route.ts,且需导出对应 HTTP 方法的函数(比如GET),示例:export async function GET() { // 你的 seed 逻辑 return new Response('Seed completed', { status: 200 }); } - 若用 Pages Router:API 文件需放在
pages/api/seed.ts,而非根目录下的api文件夹。
你当前的文件路径不符合 Next 13 的 API 路由规则,导致访问时返回 404。
2. TypeScript 类型错误修复
提示 main_image 不符合 RestaurantCreateManyInput 类型,说明你的 Prisma Schema 中定义的字段是 main_img,但课程提供的 seed.ts 里用了 main_image。解决方式:
- 直接修改
seed.ts中的字段名,把所有main_image替换为main_img; - 若你想保留
main_image字段名,需修改 Prisma Schema 中的对应字段,然后执行npx prisma generate更新 Prisma 客户端,再同步数据库(npx prisma db push或npx prisma migrate dev)。
3. 种子数据未生成的连锁问题
404 导致 API 逻辑根本没执行,加上类型错误会让代码编译/运行失败,所以先解决前两个问题:调整 API 文件路径、修正字段名,再访问正确的 API 地址触发种子数据填充。
内容的提问来源于stack exchange,提问作者Ethan
相关产品推荐
相关产品推荐

