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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 23:05:57