[Next.js] Next.js Prisma MySQL migrate 실행 방법 및 주의사항( [*] Changed the `my_table` table [+] Added foreign key on columns (fk_my_code)
이번에는 또 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 해주기!!
tb_test_user라는 별거 없는 테스트 테이블을 하나 생성하고, 모델도 만들어줬다.
prisma의 모델명은 보통 파스칼 케이스를 사용해서 ,
@@map("스네이크_케이스_테이블명")으로 작성해 주면 된다.
prisma studio 로 확인을 해보기 위해선 아래와 같은 명령어 입력
npx prisma studio
드디어 스튜디오에서 확인 가능하다 !!!