Prisma即使环境变量已配置,仍然抛出“未设置数据库主机或连接字符串”的错误
在我的Next.js应用(部署在Vercel上)访问“Add Your Store”页面时,会触发通过Prisma的数据库操作,导致以下错误:
No database host or connection string was set, and key parameters have default values
(host: localhost, user: undefined, db: undefined, password: null).
Is an environment variable missing? Alternatively, if you intended to connect
with these parameters, please set the host to 'localhost' explicitly.
堆栈:
-
Next.js(应用路由)
-
Prisma ORM(对象关系映射)
-
Neon PostgreSQL(无服务器)
-
部署在Vercel上
我已完成:
-
在Vercel的环境变量中设置
DATABASE\_URL(使用Neon的 pooler连接字符串) -
为迁移单独设置
DATABASE\_URL\_UNPOOLED -
将
prisma migrate deploy作为构建命令的一部分执行
我已检查:
-
环境变量已在Vercel的仪表板中为正确的环境(生产/预览)定义
-
schema.prisma引用env("DATABASE\_URL") -
错误提示在运行时未获取到该变量(
user: undefined、db: undefined)
问题:
为什么Prisma在 Vercel上在运行时没有读取 DATABASE\_URL,以及在Neon PostgreSQL的无服务器Next.js部署中,确保连接字符串对Prisma可用的正确做法是什么?
解决方案
我也遇到了同样的问题,Prisma默认使用 .env 文件而不是 .env.local,请检查这一点。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。