Lorsque vous travaillez avec Prisma, vous pouvez rencontrer l'erreur frustrante « Variable d'environnement introuvable : DATABASE_URL », même lorsque la variable est clairement définie dans votre fichier .env. Cette erreur signale généralement une déconnexion entre votre fichier schema.prisma et les variables d'environnement, empêchant Prisma d'accéder aux détails de connexion à la base de données.
Étape 1 : Vérifiez votre fichier .env
La première étape consiste à confirmer que la variable DATABASE_URL est correctement définie. Ouvrez votre fichier .env dans le répertoire racine et assurez-vous de ce qui suit :
DATABASE_URL="mydatabaseurlstring"
Comprendre l'erreur
Si la DATABASE_URL est correctement définie mais que l'erreur persiste, Prisma risque de ne pas pouvoir y accéder. Prisma Client dépend du fichier schema.prisma pour la configuration, qui récupère l'URL de connexion via des variables d'environnement à l'aide de la fonction env(). Si Prisma ne parvient pas à localiser la DATABASE_URL pendant le processus de génération du client, cela déclenche l'erreur "Variable d'environnement introuvable".
Solution : npx prisma generate
Exécutez la commande suivante dans le répertoire racine de votre projet :
npx prisma generate
Cette commande régénère le client Prisma, permettant à Prisma de relire les variables d'environnement dans votre fichier .env et de les incorporer dans le code client généré.
Pourquoi cela fonctionne
En régénérant le client Prisma, cette commande garantit que Prisma est à jour avec votre schéma et a accès aux variables d'environnement, y compris DATABASE_URL.
Scénarios de cas supplémentaires
1. Exécuter Prisma Studio avec Next.js
Dans les projets avec Next.js, où les variables d'environnement sont stockées dans .env.local, chargez-le explicitement avant d'exécuter les commandes Prisma :
npm install -g dotenv-cli dotenv -e .env.local -- npx prisma studio
2. .env vs .env.local dans Next.js
Dans Next.js, renommer .env.local en .env peut parfois résoudre les problèmes d'accès à Prisma. Prisma lit souvent par défaut les variables de .env, donc la normalisation de ce fichier peut éviter des problèmes de compatibilité.
3. Utiliser Vercel et Vercel Postgres
Si vous utilisez Vercel et que vous avez extrait des variables d'environnement dans .env.development.local avec vercel pull, copiez-les dans .env car Prisma lit principalement ce fichier :
cp .env.development.local .env
Maintenant, essayez d'exécuter des commandes Prisma telles que :
npx prisma db pull npx prisma generate npx prisma migrate
4. Syntaxe d'importation PrismaClient
Si vous utilisez @prisma/client/edge dans des importations comme :
DATABASE_URL="mydatabaseurlstring"
passer à :
npx prisma generate
L'utilisation de @prisma/client plutôt que de la version Edge peut aider à résoudre les incohérences avec la gestion des variables d'environnement de Prisma.
Prévenir les problèmes futurs
npm install -g dotenv-cli dotenv -e .env.local -- npx prisma studio
Chargez-le dans le point d'entrée de votre application (par exemple, src/hooks.server.js) :
cp .env.development.local .env
PS : Voici un lien vers la documentation officielle de Prisma pour plus de détails sur la gestion des fichiers .env.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!