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:
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
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
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!