使用Bun时Prisma数据填充(Seed)功能无法正常工作
解决Bun+Elysia+Prisma种子数据不写入的问题
直接给你几个能快速排查的方向,按顺序试:
强制捕获所有异步错误
你的seed.ts大概率是出现了异步错误但没被捕获,导致Promise静默失败,Bun直接退出了。把seed.ts改成带完整错误捕获的结构:import { PrismaClient } from '@prisma/client' const prisma = new PrismaClient() async function main() { try { // 你的种子数据写入代码,比如: // await prisma.user.create({ data: { name: 'Test User' } }) console.log('种子代码执行到这一步了吗?') } catch (err) { console.error('种子写入出错:', err) throw err // 抛出错误让外层捕获 } } main() .then(async () => { console.log('种子数据写入完成') await prisma.$disconnect() }) .catch(async (e) => { console.error('种子执行失败:', e) await prisma.$disconnect() process.exit(1) // 用非0退出码告知Prisma执行失败 })这样不管是字段不匹配、连接错误还是其他问题,都会在控制台打印出来,不会静默消失。
开启Prisma日志排查
在schema.prisma的generator里加上日志配置,能看到Prisma的查询细节和错误:generator client { provider = "prisma-client-js" log = ["query", "error", "warn"] }重新执行seed,就能看到有没有查询发送到数据库,或者有没有必填项缺失、模型不匹配的问题。
确认数据库连接一致
确保db push和seed用的是同一个数据库:- 检查根目录
.env里的DATABASE_URL有没有拼写错误 - 如果你的.env文件在自定义路径,执行seed时要手动指定:
bun --env-file ./config/.env utils/seed.ts
- 检查根目录
检查package.json的seed配置
确认种子脚本的路径没写错:{ "prisma": { "seed": "bun utils/seed.ts" } }路径错误会导致Prisma执行空脚本,自然不会写入数据。
重新生成Prisma客户端
有时候db push后客户端没同步更新,导致模型不匹配,跑一下:bunx prisma generate再执行seed试试。
内容的提问来源于stack exchange,提问作者LeMecWeird
相关产品推荐
相关产品推荐

