【问题标题】:How to use multiple .env files in Prisma?如何在 Prisma 中使用多个 .env 文件?
【发布时间】:2022-01-09 03:45:30
【问题描述】:

我正在使用 Prisma 开发一个 nestjs 项目,我想在 Prisma 中使用多个 .env 文件。我在这里关注guide。根据指南,我补充说:

"migratetest:mysql": "dotenv -e .env.test -- npx prisma migrate dev",
"migratedev:mysql": "dotenv -e .env.development -- npx prisma migrate dev"

到我的 package.json。我运行migratetest:mysql 来加载 .env.test 文件并进行迁移。然后,我运行start: dev 来启动应用程序。然而,棱镜说:

Error: error: Environment variable not found: DATABASE_URL.
  -->  schema.prisma:10
   | 
 9 |   provider = "mysql"
10 |    url      = env("DATABASE_URL")
   | 

好像在我的项目中找不到.env文件(根据指南,没有.env文件,应该改成.env.test和.env.development)

这是我的 .env.test:

DATABASE_URL=mysql://root:123456@localhost:3306/test

这是我的 .env.development:

DATABASE_URL=mysql://root:123456@localhost:3306/dev

请帮忙:)

【问题讨论】:

  • 分享 .env 文件的内容?
  • 尝试 prisma cli 并在没有 npx 的情况下使用 prisma migrate dev 运行它
  • 嗨,我更新了 .env
  • 我尝试按照您链接的指南进行操作,但似乎无法复制您的问题。这对我来说可以。是否有可能在 github 上提供某种问题的复制?
  • 嗨,Jakub 的解决方案可以节省我的时间:)

标签: javascript node.js nestjs prisma dotenv


【解决方案1】:

您需要告诉每个脚本您必须使用 dotenv cli,因此您的 start:dev 应该如下所示:

"start:dev": "dotenv -e .env.development nest start --watch",

但是,对我来说,它并没有在监视模式下开始编译,我仍在尝试调试它。有什么想法吗?

编辑:我发布了这个,2 分钟后我解决了我的问题:D 脚本的最终版本应该是这样的:

"start:dev": "dotenv -e .env.development -- nest start --watch",

Prisma docs 中解释了需要两个破折号的原因:

注意:默认情况下,dotenv 不会将标志传递给 Prisma 命令, 这就是该命令包含两个破折号的原因——在 prisma 之前,使 可以使用--force、--schema 或--preview-feature 等标志。

【讨论】:

  • 它对我有用!
猜你喜欢
  • 2019-10-18
  • 2017-06-16
  • 2021-07-03
  • 2021-10-22
  • 2020-03-25
  • 2020-05-27
  • 2018-02-07
  • 2021-10-18
  • 2021-11-12
相关资源
最近更新 更多