카테고리 없음

240529 TIL 서른한번째날 - 스키마.프리즈마

8나지 2024. 5. 29. 21:42

오늘 한 일 - 프리즈마 수정하기, 게시판 GET 구현, 한걸음 앞으로 가면 두걸음 오류걸려서 뒤로가기

37번째줄

Resume Resume? -> resumes Resume[]

강의에서 이력서가 생성될수도 아닐 수도 있음을 이야기 하셔서 ? 붙였음.

과제에서는 이력서를 여러개 생성할 수 있으니 s 붙이고, 같은 형식의 이력서를 나열(목록조회)하므로 [] 붙여줌

 

51번째줄

user의 id와 resume의 id를 연결하고, 표시로 Id로 지정해두었으나... 더 큰 혼란만 가져왔다고 한다..

차라리 userid 로 지정해줘도 됬을 듯

 

54번째줄

두 테이블에 id를 각각 연결한다고 생각해서 이력서 id를 따로 생각하고, 기본값을 자동생성하게 지정했었으나

user 의 id와 resume에 들어갈 id를 authorId로 바꿔서 관계설정해줌. => 타입을 int로 user의 id와 맞춤

 

60번째줄

resume에 있는 author와 user에 있는 user를 관계설정 해줄건데

authorId와 id를 관계설정해줌

 

 

수정된 스키마

 

스키마 입력, 수정 모두 prisma db push 이 친구를 이용하는데, 어디서 수정 할 때 입력하면 충돌난다고 해서 수정 하는 코드가 따로 있는줄 알고 엄청 찾아봤었다.

 

결론은

 

yarn prisma db push - 스키마 입력 및 수정 후 적용

(npx prisma db push 도 같은 역할)

 

수정 후에 yarn prisma db push 해도 충돌이 일어날 수 있고, 아닐 수 도 있음

충돌이 날 경우에는 yarn prisma db push --accept-data-loss 쓰면 됨 ; 데이터 손실 감안해야함

 

나는 yarn prisma db push 요 코드를 사용했는데 다행히 별 문제없었다.

--force 가 없다고 나옴.

 

그 외로,

배포 후 에러가 났다면

  • EC2 배포 시 Prisma가 DATABASE_URL을 못 찾는다는 에러가 나온다면 아래 명령을 실행해 주세요.
yarn prisma generate 또는 npx prisma generate
 
  • Prisma는 Schema를 정의하면 맞춤으로 사용할 수 있는 코드를 생성해 줍니다. (ex: prisma.users.create, prisma.users.findFirst)
  • 이 코드를 생성해 주는 명령이 바로 위의 명령어인데, 로컬에서 개발할 때에는 prisma db push 라는 명령을 실행 할 때 자동으로 generate가 실행되어서 아무 문제 없이 실행이 됐을겁니다.
  • 해당 코드가 node_modules 안에 생성 되기에, Git으로 관리되지 않습니다. 그래서 배포할 때 clone을 받으면 해당 코드가 포함되어 있지 않아, 위의 명령을 통해서 직접 생성해줘야 합니다.

 

오늘의 실수 : RDS 포트 번호 임의로 바꾸기.. (mysql 3306 -> ip4 3000) ; 지난 번에 mysql 기본 포트값이 3306이였는데 vs code로 my sql 작업하며 3306 쓰고 있었어서 중간에 3000번으로 바꿔줘서 RDS 도 바꿔줘야 한다고 생각함..ㅎ

api 주소에서 자꾸 api 빼고 insomnia에다 안나온다고 멘붕오기

post api 주소 연결해서 웹에 연결하고 안나온다고 멘붕오기...

 

회고 : 꼼꼼히 살펴보자...