Prisma无法读取.env文件中DATABASE_URL环境变量求助
Prisma提示找不到DATABASE_URL环境变量问题
我通过npx prisma init创建了.env文件,但运行script.ts时Prisma提示找不到DATABASE_URL环境变量。已尝试npx prisma migrate dev --name init和npx prisma generate,问题仍存在。
文件夹结构
--prisma -- schema.prisma --.env --script.ts
schema.prisma代码
generator client { provider = "prisma-client-js" } datasource db { provider = "postgresql" url = env("DATABASE_URL") } model User { id Int @id @default(autoincrement()) name String }
.env内容
DATABASE_URL="postgres://xxxxxx:xxxx@ep-jolly-dew-42750400.ap-southeast-1.aws.neon.tech/test"
script.ts代码
import { PrismaClient } from '@prisma/client/edge' const prisma = new PrismaClient() const main = async () => { const user = await prisma.user.create({data:{name:"Sai"}}) console.log(user) } main() .catch((err) => console.log(err)) .finally(async () => { await prisma.$disconnect() })
运行时错误
PrismaClientInitializationError: Invalid `prisma.user.create()` invocation: error: Environment variable not found: DATABASE_URL.
解决方案
1. 手动加载环境变量
直接运行ts文件时,Node.js默认不会自动加载.env文件,需借助dotenv包:
- 安装依赖:
npm install dotenv --save-dev - 在script.ts最顶部添加加载代码:
import dotenv from 'dotenv' dotenv.config() - 或运行时直接用dotenv命令加载:
npx dotenv -e .env ts-node script.ts
2. 修正.env变量格式
去掉DATABASE_URL的引号,避免解析异常:
DATABASE_URL=postgres://xxxxxx:xxxx@ep-jolly-dew-42750400.ap-southeast-1.aws.neon.tech/test
3. 确认.env文件位置
确保.env文件位于项目根目录(与script.ts同级),若路径不符可手动指定数据库链接:
const prisma = new PrismaClient({ datasources: { db: { url: process.env.DATABASE_URL || '你的数据库链接', }, }, })
内容的提问来源于stack exchange,提问作者Sai Krishnadas
相关产品推荐
相关产品推荐

