繁体   English   中英

未在 Prisma 模式中注册的环境变量

[英]Environment variables not registering in Prisma schema

我发现 Prisma 模式可以检测环境变量的唯一方法是在其应用程序的根目录中包含一个.env文件。

我正在使用 docker compose 来构建一些服务,其中一个是使用 Prisma 管理数据库的应用程序。 环境变量可通过process.env在应用程序中使用,但 Prisma 无法使用env function 检测到这一点。

这是我访问schema.prisma中的变量的方式:

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

我通过这种方式组合 docker 中的变量:

  app:
    build:
      context: ./app
    environment:
      DATABASE_URL: ${DATABASE_URL}

如何让这个 function 检测不一定属于.env变量的环境变量?

我最终解决了这个问题。 当我在终端中运行命令时,我在 docker 容器之外运行它们,因此在 docker 中运行的棱镜代码完美运行。 但是我在外面运行的命令看不到那个 .env 文件。

我能够通过将 env 值添加到我的脚本来解决。 它可能不是最优雅的解决方案,但它确实有效。 例如:

eval $(grep '^DATABASE_URL' ../.env) prisma db pull && prisma generate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM