📝 Prisma Client 에러 ( 개인프로젝트 )

10_2pang·2023년 9월 10일
0

⚽️트러블슈팅

목록 보기
91/94
post-thumbnail

👨‍💻 사건


회원정보의 유무를 파악한후, Prisma 를 통해 user 데이터를 삽입하는 과정을 진행하고 있었다.

그 과정에서 아래와 같은 에러가 지속적으로 발생하였다.

{ clientVersion:"5.0.0"name:"PrismaClientValidationError" }

PrismaClientValidationError 의 오류는 대부분 오류코드를 포함하고 있어, 파악하기 쉬웠지만 무슨일인지 에러코드가 없었다.

시도 방안

  1. 변수들을 모두 로그를 찍어서 파악해보았다.
  2. prisma 로 접근하는 모든 코드를 살펴보고, 어떤 코드의 문제점인지 찾아보았다.
    2-1. const existingUser = await prisma.socialUser.findUnique(...
    2-2. await prisma.socialUser.create({...

✅ 해결


findUnique vs findFirst

findUnique : unique 필드만 사용하여 필터링이 가능함
findFirst : 모든 필터링을 사용하여, 가장 첫 값을 찾아낸다.

스키마를 작성했을때, 나는 email 과 provider 의 조합을 유니크하도록 제약을 설정했다.

@@unique([email, provider])

이것이 각 값이 유니크한 값을 의미하는것이 아님을 알았지만, 무의식적으로 findUnique를 통해 필터를 하여서 오류가 발생했던 것 이였다.

아래와 같이 findFirst 를 해주면서 오류가 해결되었다.

const existingUser = await prisma.socialUser.findFirst({
  where: {
    email: email,
    provider: sessionProvider,
  },
});

항상 이런 사소한 오류가 가장 찾기 힘든것같다... 모든 코드에 의미를 찾아보고 사용하도록 노력해보겠두아...훌찌락

💭 개선


  • 마지막 코어기능인 스쿼드 메이커만 작업을 내일까지 마무리 짓고 배포 작업을 해야한다.
profile
주니어 프론트엔드 개발자 이광렬 입니다 🌸

1개의 댓글

comment-user-thumbnail
2023년 9월 10일

안녕하세요! 10_2pang님의 블로그 잘 읽어보았습니다!

저는 uxui디자이너 취업준비생입니다!
다름이 아니라 it커뮤니티 앱 서비스를 제작하고싶어
설문조사를 준비했는데 참여 가능할까요!?

설문 시간은 약 7분 이내 입니다.

✅설문 완료자 분들 중 추첨을 통해 소정의 커피 기프티콘을 총 10분께 드릴 계획입니다.

  • 설문 기간 : 9월 07일 (목) ~ 9월 25일 (월)

✔설문링크✔
https://f9t6fmjryg6.typeform.com/to/fubJmSvJ

해주시면 감사하겠습니다 ㅠ̆̈ㅠ̆̈

답글 달기