Prisma で「Environment variable not found: DATABASE_URL」が解決できない
Prisma が .env の DATABASE_URL を読み込めないと、Environment variable not found: DATABASE_URL で停止する。
.env をプロジェクト直下に置き、datasource の url を env() で参照すれば解消する。
#prisma#env#database-url
公開:
要約
Environment variable not found: DATABASE_URL は、schema.prisma の env("DATABASE_URL") に対応する環境変数を Prisma が見つけられないときに出る。
Prisma CLI は .env の内容を process.env に読み込んでから動くため、.env の場所や中身がずれていると参照に失敗する。
.env をプロジェクト直下に置き、DATABASE_URL を正しく定義すれば解消する(公式: 環境変数の管理)。
よくある原因
.envがプロジェクトルート(./.env)に無い、または schema と別階層にある。.envにDATABASE_URLの行が無い、スペルミス、あるいはコメントアウトされている。datasource dbのurlが誤った参照になっている。prisma.config.ts利用時にdotenvを読み込まず、変数がprocess.envに載っていない。
解決策
1. .env をルートに置き DATABASE_URL を定義する
# .env(プロジェクト直下)
DATABASE_URL="postgresql://user:pass@localhost:5432/mydb"Prisma CLI は ./.env → --schema と同じ階層 → ./prisma の順で .env を探索する。
2. schema 側で env() 参照にする
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}3. prisma.config.ts では dotenv を読み込む
import 'dotenv/config';prisma.config.ts を使う構成では、自前で .env を読み込まないと変数が反映されない。