Bei der Arbeit mit Prisma kann der frustrierende Fehler „Umgebungsvariable nicht gefunden: DATABASE_URL“ auftreten, selbst wenn die Variable in Ihrer .env-Datei eindeutig definiert ist. Dieser Fehler signalisiert normalerweise eine Trennung zwischen Ihrer schema.prisma-Datei und den Umgebungsvariablen und verhindert, dass Prisma auf die Datenbankverbindungsdetails zugreifen kann.
Schritt 1: Überprüfen Sie Ihre .env-Datei
Der erste Schritt besteht darin, zu bestätigen, dass die Variable DATABASE_URL korrekt definiert ist. Öffnen Sie Ihre .env-Datei im Stammverzeichnis und stellen Sie Folgendes sicher:
DATABASE_URL="mydatabaseurlstring"
Den Fehler verstehen
Wenn die DATABASE_URL korrekt definiert ist, der Fehler jedoch weiterhin besteht, kann Prisma möglicherweise nicht darauf zugreifen. Prisma Client ist für die Konfiguration auf die Datei schema.prisma angewiesen, die die Verbindungs-URL über Umgebungsvariablen mithilfe der Funktion env() abruft. Wenn Prisma die DATABASE_URL während des Client-Generierungsprozesses nicht finden kann, wird der Fehler „Umgebungsvariable nicht gefunden“ ausgelöst.
Lösung: Npx Prisma generieren
Führen Sie den folgenden Befehl im Stammverzeichnis Ihres Projekts aus:
npx prisma generate
Dieser Befehl generiert den Prisma-Client neu, sodass Prisma die Umgebungsvariablen in Ihrer .env-Datei erneut lesen und in den generierten Client-Code integrieren kann.
Warum das funktioniert
Durch die Neugenerierung des Prisma-Clients stellt dieser Befehl sicher, dass Prisma mit Ihrem Schema auf dem neuesten Stand ist und Zugriff auf Umgebungsvariablen hat, einschließlich DATABASE_URL.
Zusätzliche Fallszenarien
1. Ausführen von Prisma Studio mit Next.js
Laden Sie in Projekten mit Next.js, in denen Umgebungsvariablen in .env.local gespeichert sind, diese explizit, bevor Sie Prisma-Befehle ausführen:
npm install -g dotenv-cli dotenv -e .env.local -- npx prisma studio
2. .env vs. .env.local in Next.js
In Next.js kann das Umbenennen von .env.local in .env manchmal Prisma-Zugriffsprobleme lösen. Prisma liest Variablen häufig standardmäßig aus .env, daher kann die Standardisierung auf diese Datei Kompatibilitätsprobleme verhindern.
3. Verwendung von Vercel und Vercel Postgres
Wenn Sie Vercel verwenden und Umgebungsvariablen mit Vercel Pull in .env.development.local gezogen haben, kopieren Sie sie nach .env, da Prisma hauptsächlich aus dieser Datei liest:
cp .env.development.local .env
Versuchen Sie nun, Prisma-Befehle auszuführen wie:
npx prisma db pull npx prisma generate npx prisma migrate
4. PrismaClient-Importsyntax
Wenn Sie @prisma/client/edge in Importen verwenden wie:
DATABASE_URL="mydatabaseurlstring"
wechseln zu:
npx prisma generate
Die Verwendung von @prisma/client anstelle der Edge-Version kann dabei helfen, Inkonsistenzen bei der Handhabung von Umgebungsvariablen durch Prisma zu beheben.
Zukünftige Probleme verhindern
npm install -g dotenv-cli dotenv -e .env.local -- npx prisma studio
Laden Sie es in den Einstiegspunkt Ihrer App (z. B. src/hooks.server.js):
cp .env.development.local .env
PS: Hier ist ein Link zur offiziellen Prisma-Dokumentation für weitere Details zur Verwaltung von .env-Dateien.
Das obige ist der detaillierte Inhalt vonPrisma-Fehler: Umgebungsvariable nicht gefunden: DATABASE_URL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!