Maison >interface Web >js tutoriel >Erreur Prisma : variable d'environnement introuvable : DATABASE_URL

Erreur Prisma : variable d'environnement introuvable : DATABASE_URL

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 08:14:30238parcourir

Prisma error: Environmental variable not found: DATABASE_URL

Résolution de l'erreur « Variable d'environnement introuvable : DATABASE_URL » dans Prisma

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 :

  1. Présence : Vérifiez que la variable DATABASE_URL est présente.
  2. Valeur correcte : Confirmez que la chaîne de connexion est correcte et au format :
   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

  1. Redémarrez votre serveur : Le redémarrage du serveur après les modifications de .env garantit le chargement de nouvelles variables.
  2. Charger des variables avec dotenv : Installez dotenv pour gérer efficacement les variables d'environnement :
   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
  1. Vérifiez le chemin et l'orthographe : Assurez-vous que votre fichier .env se trouve au bon emplacement et que les noms de variables sont orthographiés de manière cohérente.

HeureuxHacking

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn