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

Node.js项目替换DB客户端为Prisma时,uuid_generate_v4()报错求助

解决Prisma迁移时uuid_generate_v4()不存在的错误

问题原因

你的原数据库已经安装了PostgreSQL的uuid-ossp扩展,所以uuid_generate_v4()函数可以正常使用,但执行迁移的空数据库是全新创建的,默认没有这个扩展,导致Prisma执行迁移SQL时找不到该函数,触发42883错误。

解决方案

方案1:修改现有迁移文件

  1. 找到生成的初始迁移文件:prisma/migrations/20221221095823_init/migration.sql
  2. 在文件最开头添加启用扩展的SQL语句:
    CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
    
  3. 保存文件后,重新执行迁移命令:
    npx prisma migrate dev
    

方案2:在Prisma Schema中配置自动加载扩展(推荐)

在prisma/schema.prisma的datasource块中添加扩展配置,让Prisma自动管理扩展的安装:

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
  extensions = [uuid_ossp] // 添加这行配置
}

配置完成后,执行以下命令重置并重新生成迁移:

npx prisma migrate reset
npx prisma migrate dev --name init

后续步骤补充

完成迁移修复后,可继续执行原计划步骤:

  • 恢复包含表和数据的原数据库
  • 执行npx prisma migrate resolve --applied 20221221095823_init标记初始迁移已应用

内容的提问来源于stack exchange,提问作者Boštjan Biber

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:40:20