삼분공부/React

[Next.js] Next.js Prisma MySQL migrate 실행 방법 및 주의사항( [*] Changed the `my_table` table [+] Added foreign key on columns (fk_my_code)

케이쓰리 2025. 5. 22. 10:00

이번에는 또 Next 프로젝트로 로그인 화면 및 로직을 만들어 보라신다. 

 

 

참고 블로그 

https://01exsilver.tistory.com/59

 

[NEXT] 3. 로그인, 회원가입 구현하기 / Next-Auth, Prisma / `NextRouter` was not mounted 에러 해결

🚀 Next-Auth로 로그인, 회원가입 구현 모든 걸 나 혼자 정해야하니까 어떤 라이브러리로 해야 좋을지 고민하는 시간만 한 세월.. 열심히 찾아보다가 next-auth가 일반 이메일 가입뿐만 아니라 구글,

01exsilver.tistory.com

 

 

위 블로그에 자세히 나와있어서 열심히 따라 만들다가, 

 

DB 연동까지 한 후, 실제 데이터베이스에는 존재하지 않는 User Model을 하나 넣어보았다. 

 

그리고 그냥 냅다 아래 명령어를 실행해 보았는데, 

npx prisma migrate dev --name init

 

 

 

뭔가 아주 큰일 난 것만 같은 메시지가 출력... 

30개 정도 있는 모든 테이블에, 저런 FK가 추가되었다는 메시지가 떴다..........? 

 

진짜 ㅈ된줄 알았는데 실제 DB에 수정된 사항은 없었고, 

 

 

model이 없는 상태에서 migrate 실행 시

 

schema.prisma에 model 정의가 없거나, 관계가 불완전하면

Prisma가 실제로 DDL(FK 추가 등) SQL을 제대로 생성 못함

즉, 마이그레이션 로그에는 “추가”라고 나와도,
실제로는 테이블에 아무 변화도 안 생기거나,
기대했던 FK, 컬럼 등이 DB에 안 들어가 있음

 

이라고 나의 GPT 샘이 설명해 주심 ㅠㅠ 

 

 

 결론은 , prisma로 사용하고 싶은 테이블은 꼭 모델을 작성한 후 migrate 해주기!! 

 

 

model
table

 

tb_test_user라는 별거 없는 테스트 테이블을 하나 생성하고, 모델도 만들어줬다. 

 

prisma의 모델명은 보통 파스칼 케이스를 사용해서 ,
@@map("스네이크_케이스_테이블명")으로 작성해 주면 된다. 

 

 

prisma studio 로 확인을 해보기 위해선 아래와 같은 명령어 입력

npx prisma studio

 

 

 

드디어 스튜디오에서 확인 가능하다 !!!