강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của divjson
divjson

câu hỏi đã được viết

Next.js vừa tầm một miếng ăn

1.3) Thiết lập máy chủ backend để thực hành

npx prisma db push 문제 완전 해결!

Viết

·

239

0

아래 동일한 문제로 고통받는 분들이 계시는 것 같아서

깔끔하게 정리해서 올려드립니다.

 

1.운영체제 및 환경설정

-맥북 m1, 윈도우 11

 

2.이슈발생

-터미널 내 npx prisma db push 입력 시, 아래 오류 발생

-오류코드 : 아래 문자열

image.png

3.해결방안

-여러가지 해결방안이 있겠지만, 저는 아래와 같이 해결했습니다.

-prisma 폴더 > schema.prisma 파일 > 14번째 줄, directUrl 삭제 (*아래처럼)

image

변경 전

image.png

변경 후

-.env 파일 > directURL 설정하지 않기 (*아래처럼!!! / 단, keyword는 본인 키워드로 변경 필수!)

image.png

 

그리고, npx prisma db push 입력 시, 문제없이 실행!!

 

4.원인분석

-아마도 DATABASE_URL과 DIRECT_URL을 둘 다 사용할 때, 뭔가 문제가 발생했던 것 같습니다. 물론 .env 파일 내 DIRECT_URL 키 생성 후 정상적인 값을 입력해보기도 했지만, 저는 계속 동일한 문제가 발생했기 때문에 그냥 서버 연결 방식을 1개만 선택했는데, 이 방법으로는 잘 되었습니다. 혹시나 저와 동일한 문제로 고민하실까 해서 완벽하지는 않지만, 공유드립니다. 감사합니다.

reacttypescriptnext.js

Câu trả lời 3

0

저 같은 경우는 패키지 업데이트 후 기존 스키마 파일에서 directUrl 을 추가하니 바로 문제가 해결되었습니다.

 

오랜만에 NextJS를 다룰일이 생겨 예전에 배웠던 내용을 복습하는 차원에서 프로젝트를 실행하니 기존 supabase 가 만료되어서 새로 프로젝트를 생성해서 연결하니 저 역시 연결이 안되는 문제가 발생했습니다.

 

supabase가 문제인가 생각하고 기존 코드를 백업후 ncu 로 패키지 업데이트를 한뒤 실행해도 문제가 지속되었는데 현 prisma에서 이제 프로젝트를 init 할때 directUrl도 기본 옵션으로 제공되는 점이 기억나 supabase 에서 제공해주는 directUrl 도 env에 추가해 옵션을 추가해 주니 바로 문제가 해결되었습니다

0

winterlood님의 프로필 이미지
winterlood
Người chia sẻ kiến thức

안녕하세요 JSON님 이정환입니다.

아이고 .. 백엔드 서버 연결로 고통받으셨다니 우선 책임 소재의 유무를 떠나 정말 죄송합니다 🙇‍♂

그러나 추측컨데 음 .. 아마 본 문제의 정확한 원인은 DIRECT_URL이 아닌 Supabase 프로젝트가 생성되기까지의 딜레이 시간이 아니었을까 싶습니다.

DIRECT_URL 까지 사용하여 연결하는 것이 Supabase 프로젝트의 권장 연결 방식이므로 혹시 지금 다시 한번 바꿔서 해 보시면 어떨까요?? 바꿔서도 안된다면 꼭 답글 부탁드립니다.

0

안녕하세요, 인프런 AI 인턴입니다. Json님.

Supabase와 Prisma를 사용하면서 데이터베이스 연결 문제가 발생하셨군요. npx prisma db push를 실행할 때 발생한 “P1001: Can’t reach database server” 오류는 데이터베이스 서버로의 연결이 차단되었거나 잘못 설정되었음을 의미합니다. Json님의 경험을 통해 제시한 해결책은 DATABASE_URL과 DIRECT_URL 설정의 충돌을 피하면서 이 문제를 해결하는 유용한 방법입니다.

다음은 Json님께서 제안한 주요 해결 방안입니다:

  1. DIRECT_URL 삭제: schema.prisma 파일에서 directUrl을 제거하여 문제가 발생했던 두 개의 URL 설정을 단일 설정으로 통합하였으며, 이를 통해 서버와의 연결 문제를 해결하셨습니다.

  2. 환경 설정의 일관성: .env 파일에서, DATABASE_URL만 사용하여 설정의 중복을 피함으로써, 불필요한 충돌을 방지하였습니다.

특히, DATABASE_URL이 데이터베이스와의 기본 연결을 제공하며, DIRECT_URL은 주로 migrations 시에만 필요할 수 있는 옵션입니다. 만약 특정 프로젝트에서 오류가 발생한다면, 사용을 최소화하고 환경 변수 문제를 줄이는 방법을 선택하는 것이 좋습니다.

비슷한 질문과 해결 방법을 찾을 수 있는 기존 답변을 참고해 보시면 더욱 도움이 될 수 있습니다.

유용한 공유 감사드리며, 위의 방법으로 문제를 해결하신 분들께 큰 도움이 될 것 같습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của divjson
divjson

câu hỏi đã được viết

Đặt câu hỏi