使用 Prisma 時,您可能會遇到令人沮喪的「未找到環境變數:DATABASE_URL」錯誤,即使您的 .env 檔案中明確定義了該變數。此錯誤通常表示您的 schema.prisma 檔案與環境變數之間斷開連接,從而阻止 Prisma 存取資料庫連接詳細資訊。
第 1 步:驗證您的 .env 檔案
第一步是確認 DATABASE_URL 變數已正確定義。開啟根目錄中的 .env 檔案並確保以下內容:
DATABASE_URL="mydatabaseurlstring"
理解錯誤
如果 DATABASE_URL 定義正確但錯誤仍然存在,Prisma 可能無法存取它。 Prisma Client 依賴 schema.prisma 檔案進行配置,該檔案使用 env() 函數透過環境變數檢索連接 URL。如果 Prisma 在用戶端產生過程中無法定位 DATABASE_URL,則會觸發「未找到環境變數」錯誤。
解:npx prisma generated
在專案的根目錄中執行以下命令:
npx prisma generate
此指令重新產生 Prisma 用戶端,允許 Prisma 重新讀取 .env 檔案中的環境變數並將它們合併到產生的客戶端程式碼中。
為什麼有效
透過重新產生 Prisma 用戶端,此命令可確保 Prisma 與您的架構保持同步,並且可以存取環境變量,包括 DATABASE_URL。
其他案例場景
1。使用 Next.js 運行 Prisma Studio
在使用 Next.js 的專案中,環境變數儲存在 .env.local 中,請在執行 Prisma 指令之前明確載入它:
npm install -g dotenv-cli dotenv -e .env.local -- npx prisma studio
2。 Next.js 中的 .env 與 .env.local
在 Next.js 中,將 .env.local 重新命名為 .env 有時可以解決 Prisma 存取問題。 Prisma 通常預設從 .env 讀取變量,因此標準化此檔案可能會防止相容性問題。
3。使用 Vercel 和 Vercel Postgres
如果您使用 Vercel 並已使用 vercel pull 將環境變數拉入 .env.development.local,請將它們複製到 .env,因為 Prisma 主要從此檔案讀取:
cp .env.development.local .env
現在,嘗試執行 Prisma 指令,例如:
npx prisma db pull npx prisma generate npx prisma migrate
4。 PrismaClient 導入語法
如果您在匯入中使用 @prisma/client/edge,例如:
DATABASE_URL="mydatabaseurlstring"
切換到:
npx prisma generate
使用 @prisma/client 而不是邊緣版本可以幫助解決 Prisma 環境變數處理的不一致問題。
預防未來問題
npm install -g dotenv-cli dotenv -e .env.local -- npx prisma studio
將其載入到應用程式的入口點(例如 src/hooks.server.js):
cp .env.development.local .env
PS:這裡是 Prisma 官方文件的鏈接,以了解有關管理 .env 文件的更多詳細資訊。
以上是Prisma 錯誤:未找到環境變數:DATABASE_URL的詳細內容。更多資訊請關注PHP中文網其他相關文章!