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

使用Bun时Prisma数据填充(Seed)功能无法正常工作

解决Bun+Elysia+Prisma种子数据不写入的问题

直接给你几个能快速排查的方向,按顺序试:

  1. 强制捕获所有异步错误
    你的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执行失败
      })
    

    这样不管是字段不匹配、连接错误还是其他问题,都会在控制台打印出来,不会静默消失。

  2. 开启Prisma日志排查
    在schema.prisma的generator里加上日志配置,能看到Prisma的查询细节和错误:

    generator client {
      provider = "prisma-client-js"
      log = ["query", "error", "warn"]
    }
    

    重新执行seed,就能看到有没有查询发送到数据库,或者有没有必填项缺失、模型不匹配的问题。

  3. 确认数据库连接一致
    确保db push和seed用的是同一个数据库:

    • 检查根目录.env里的DATABASE_URL有没有拼写错误
    • 如果你的.env文件在自定义路径,执行seed时要手动指定:bun --env-file ./config/.env utils/seed.ts
  4. 检查package.json的seed配置
    确认种子脚本的路径没写错:

    {
      "prisma": {
        "seed": "bun utils/seed.ts"
      }
    }
    

    路径错误会导致Prisma执行空脚本,自然不会写入数据。

  5. 重新生成Prisma客户端
    有时候db push后客户端没同步更新,导致模型不匹配,跑一下:

    bunx prisma generate
    

    再执行seed试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 07:24:59