prisma - 运行 graphql 查询时获取环境变量未找到错误消息

Sum*_*ans 34 prisma prisma-graphql

当我运行 GraphQL 查询时,我从 prisma 收到此错误消息。

Environment variable not found: DATABASE_URL.\n  -->  schema.prisma:6\n   | \n 5 |   provider = \"postgresql\"\n 6 |   url      = env(\"DATABASE_URL\")\n   | \n\nValidation Error Count: 1",
Run Code Online (Sandbox Code Playgroud)

起初,我的任何项目文件夹中都没有 .env 文件,然后我使用数据库 URL 的链接添加了它,但仍然无法正常工作。这是文件夹结构:

文件夹结构:在根目录中,有node_modules、prisma和src文件夹、.env、.gitignore和package.json文件。 在 prisma 内部,有一个 migrations 文件夹和一个 schema.prisma 文件。

这就是我的.env文件中的内容 -

DATABASE_URL="postgres://postgres:mypassword@db.pqtgawtgpfhpqxpgidrn.supabase.co:5432/postgres"
Run Code Online (Sandbox Code Playgroud)

Sum*_*ans 112

如果有人遇到这个问题,只需运行npx prisma generate. 这将重新建立 schema.prisma 和 .env 文件之间的链接。

  • 对我来说,事实证明我有 `DATABASE_URL="my value` 并且忘记了结束双引号!所以该值不是“那里”,因为 `dotenv` 由于错误而无法正确解析它我这边。 (2认同)
  • 如果您是 next.js 用户,请参阅下面的答案 (2认同)

ely*_*s.m 42

我在 NextJs 项目中遇到了这个问题。将 .env.local 文件更改为 .env 后,一切正常。


pec*_*ata 41

就我而言,我想使用 NextJS 运行 Prisma Studio,它将所有环境变量存储在 中.env.local,因此我需要首先加载该文件。

npm install -g dotenv-cli
Run Code Online (Sandbox Code Playgroud)
dotenv -e .env.local -- npx prisma studio
Run Code Online (Sandbox Code Playgroud)

这是关于如何手动加载文件的官方Prisma 文档的链接.env

  • 谢谢你!这非常有帮助,我还将 `"migrate": "dotenv -e .env.local npx prisma migrate dev"` 添加到了我的 package.json 文件中的脚本中。 (5认同)
  • 谢谢@fotoflo,我想在 package.json 文件中添加脚本会使其变得非常简单。 (2认同)