簡體   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