Prisma로 작업할 때 변수가 .env 파일에 명확하게 정의되어 있는 경우에도 실망스러운 "환경 변수를 찾을 수 없음: DATABASE_URL" 오류가 발생할 수 있습니다. 이 오류는 일반적으로 Schema.prisma 파일과 환경 변수 사이의 연결이 끊어져 Prisma가 데이터베이스 연결 세부 정보에 액세스할 수 없다는 신호입니다.
1단계: .env 파일 확인
첫 번째 단계는 DATABASE_URL 변수가 올바르게 정의되었는지 확인하는 것입니다. 루트 디렉터리에서 .env 파일을 열고 다음을 확인하세요.
DATABASE_URL="mydatabaseurlstring"
오류 이해
DATABASE_URL이 올바르게 정의되었으나 오류가 지속되는 경우 Prisma가 해당 URL에 액세스하지 못할 수 있습니다. Prisma 클라이언트는 env() 함수를 사용하여 환경 변수를 통해 연결 URL을 검색하는 Schema.prisma 파일을 사용하여 구성합니다. Prisma가 클라이언트 생성 프로세스 중에 DATABASE_URL을 찾지 못하면 "환경 변수를 찾을 수 없습니다." 오류가 발생합니다.
해결책: npx prisma generate
프로젝트의 루트 디렉터리에서 다음 명령을 실행하세요.
npx prisma generate
이 명령은 Prisma 클라이언트를 재생성하여 Prisma가 .env 파일의 환경 변수를 다시 읽고 생성된 클라이언트 코드에 통합할 수 있도록 합니다.
이것이 효과적인 이유
이 명령은 Prisma 클라이언트를 다시 생성하여 Prisma가 스키마를 최신 상태로 유지하고 DATABASE_URL을 포함한 환경 변수에 액세스할 수 있도록 보장합니다.
추가 사례 시나리오
1. Next.js로 Prisma Studio 실행
환경 변수가 .env.local에 저장되어 있는 Next.js를 사용하는 프로젝트에서는 Prisma 명령을 실행하기 전에 이를 명시적으로 로드하세요.
npm install -g dotenv-cli dotenv -e .env.local -- npx prisma studio
2. Next.js의 .env 대 .env.local
Next.js에서 .env.local의 이름을 .env로 바꾸면 때때로 Prisma 액세스 문제가 해결될 수 있습니다. Prisma는 기본적으로 .env에서 변수를 읽는 경우가 많으므로 이 파일로 표준화하면 호환성 문제를 방지할 수 있습니다.
3. Vercel 및 Vercel Postgres 사용
Vercel을 사용하고 있고 vercel pull을 사용하여 환경 변수를 .env.development.local로 가져온 경우 Prisma가 주로 이 파일에서 읽을 때 해당 변수를 .env에 복사하세요.
cp .env.development.local .env
이제 다음과 같은 Prisma 명령을 실행해 보세요.
npx prisma db pull npx prisma generate npx prisma migrate
4. PrismaClient 가져오기 구문
다음과 같은 가져오기에서 @prisma/client/edge를 사용하는 경우:
DATABASE_URL="mydatabaseurlstring"
다음으로 전환:
npx prisma generate
에지 버전 대신 @prisma/client를 사용하면 Prisma의 환경 변수 처리 불일치를 해결하는 데 도움이 될 수 있습니다.
향후 문제 예방
npm install -g dotenv-cli dotenv -e .env.local -- npx prisma studio
앱의 진입점(예: src/hooks.server.js)에 로드하세요.
cp .env.development.local .env
PS: .env 파일 관리에 대한 자세한 내용을 보려면 공식 Prisma 문서 링크를 참조하세요.
위 내용은 Prisma 오류: 환경 변수를 찾을 수 없습니다: DATABASE_URL의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!