Rumah  >  Artikel  >  hujung hadapan web  >  Ralat Prisma: Pembolehubah persekitaran tidak ditemui: DATABASE_URL

Ralat Prisma: Pembolehubah persekitaran tidak ditemui: DATABASE_URL

Susan Sarandon
Susan Sarandonasal
2024-10-31 08:14:30179semak imbas

Prisma error: Environmental variable not found: DATABASE_URL

Menyelesaikan Ralat "Pembolehubah Persekitaran Tidak Ditemui: DATABASE_URL" dalam Prisma

Apabila bekerja dengan Prisma, anda mungkin menghadapi ralat "Pembolehubah persekitaran tidak ditemui: DATABASE_URL" yang mengecewakan, walaupun pembolehubah itu ditakrifkan dengan jelas dalam fail .env anda. Ralat ini biasanya menandakan pemutusan sambungan antara fail schema.prisma anda dan pembolehubah persekitaran, menghalang Prisma daripada mengakses butiran sambungan pangkalan data.


Langkah 1: Sahkan Fail .env Anda

Langkah pertama ialah mengesahkan bahawa pembolehubah DATABASE_URL ditakrifkan dengan betul. Buka fail .env anda dalam direktori akar dan pastikan perkara berikut:

  1. Kehadiran: Semak sama ada pembolehubah DATABASE_URL hadir.
  2. Nilai Betul: Sahkan bahawa rentetan sambungan adalah betul dan dalam format:
   DATABASE_URL="mydatabaseurlstring"

Memahami Ralat

Jika DATABASE_URL ditakrifkan dengan betul tetapi ralat berterusan, Prisma mungkin tidak dapat mengaksesnya. Pelanggan Prisma bergantung pada fail schema.prisma untuk konfigurasi, yang mendapatkan semula URL sambungan melalui pembolehubah persekitaran menggunakan fungsi env(). Jika Prisma gagal mencari DATABASE_URL semasa proses penjanaan pelanggan, ia akan mencetuskan ralat "Pembolehubah persekitaran tidak ditemui".


Penyelesaian: npx prisma menjana

Jalankan arahan berikut dalam direktori akar projek anda:

npx prisma generate

Arahan ini menjana semula Pelanggan Prisma, membenarkan Prisma membaca semula pembolehubah persekitaran dalam fail .env anda dan memasukkannya ke dalam kod klien yang dijana.

Mengapa Ini Berfungsi

Dengan menjana semula Pelanggan Prisma, arahan ini memastikan Prisma dikemas kini dengan skema anda dan mempunyai akses kepada pembolehubah persekitaran, termasuk DATABASE_URL.


Senario Kes Tambahan

1. Menjalankan Prisma Studio dengan Next.js

Dalam projek dengan Next.js, di mana pembolehubah persekitaran disimpan dalam .env.local, muatkannya secara eksplisit sebelum menjalankan perintah Prisma:

   npm install -g dotenv-cli
   dotenv -e .env.local -- npx prisma studio

2. .env vs .env.local dalam Next.js

Dalam Next.js, menamakan semula .env.local kepada .env kadangkala boleh menyelesaikan isu akses Prisma. Prisma selalunya lalai membaca pembolehubah daripada .env, jadi penyeragaman kepada fail ini boleh menghalang isu keserasian.

3. Menggunakan Vercel dan Vercel Postgres

Jika anda menggunakan Vercel dan telah menarik pembolehubah persekitaran ke dalam .env.development.local dengan vercel pull, salinnya ke .env kerana Prisma terutamanya membaca daripada fail ini:

   cp .env.development.local .env

Sekarang, cuba jalankan arahan Prisma seperti:

   npx prisma db pull
   npx prisma generate
   npx prisma migrate

4. Sintaks Import PrismaClient

Jika anda menggunakan @prisma/client/edge dalam import seperti:

   DATABASE_URL="mydatabaseurlstring"

tukar kepada:

npx prisma generate

Menggunakan @prisma/klien dan bukannya versi kelebihan boleh membantu menyelesaikan ketidakkonsistenan dengan pengendalian pembolehubah persekitaran Prisma.


Mencegah Isu Masa Depan

  1. Mulakan Semula Pelayan Anda: Memulakan semula pelayan selepas perubahan .env memastikan pembolehubah baharu dimuatkan.
  2. Muat Pembolehubah dengan dotenv: Pasang dotenv untuk mengurus pembolehubah persekitaran dengan berkesan:
   npm install -g dotenv-cli
   dotenv -e .env.local -- npx prisma studio

Muatkannya dalam titik masuk apl anda (cth., src/hooks.server.js):

   cp .env.development.local .env
  1. Laluan dan Ejaan Semak Dua Kali: Pastikan fail .env anda berada di lokasi yang betul dan nama pembolehubah dieja secara konsisten.

HappyHacking

PS: Berikut adalah pautan ke dokumentasi Prisma rasmi untuk mendapatkan butiran lanjut tentang mengurus fail .env.

Atas ialah kandungan terperinci Ralat Prisma: Pembolehubah persekitaran tidak ditemui: DATABASE_URL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn