이번 팀프로젝트를 진행하면서 처음으로 많은 테이블을 다루게되었다. 많은 테이블과 연관관계 그리고 스키마를 나만 만들지 않다보니 여러 기능을 만들다보면 스키마를 수정할 일이 지속적으로 발생했다. 처음에는 스키마를 수정하면 데이터베이스에도 적용해야한다는 점을 몰라서 풀리지 않는 오류에 시간을 꽤나 오래쓰기도 했는데, 이번 기회에 스키마를 변경해야할 경우 어떻게해야하는지 정리해보려한다.
1) 스키마 수정 (모델 수정)
shchema.prisma 파일을 열어 필드를 추가, 삭제, 수정을 진행한다.
2) 마이그레이션
마이그레이션 : Prisma가 데이터베이스 스키마 변경을 추적하는기 위해 사용하는 것으로, 변경된 모델을 기반으로 마이그레이션을 생성
- Prisma CLI를 사용하여 마이그레이션을 생성
npx prisma migrate dev --name your-migration-name
'your-migration-name' -> 마이그레이션의 이름
ex) npx prisma migrate dev --name add-email-field
- 마이그레이션 확인
마이그레이션 생성 후 Prisma는 데이터베이스 스키마 변경을 위한 SQL 파일 생성.
이 파일은 Prisma 마이그레이션 디렉토리에 저장됨 -> 이 파일 내용을 확인해 변경 사항 검토 가능
- 마이그레이션 적용
생성된 마이그레이션을 데이터 베이스에 적용.
npx prisma migrate dev
이 명령을 실행함으로써 Prisma는 마이그레이션을 실행해 데이터베이스의 스키마를 변경하고, 벼경 사항을 데이터베이스에 적용.
이 과정에서 기존 데이터의 무결성을 보장하기 위해 조심해서 작업해야 한다고 한다. 나같은 경우 마이그레이션을 진행할경우 기존 데이터가 모두 날아가는 경우가 많았다. 지금은 다 테스트를 위한 데이터였기에 문제가 되지 않았지만 현업에서 실제로 제공하고있는 서비스의 데이터가 다 날아갔다고 생각하면 굉장히 아찔한 상황인 것이다.
다음번에는 데이터 무결성을 보장하면서 기존 데이터를 유지하며 마이그레이션을 잘 진행하기 위해 어떻게 해야할지 정리해보아야겠다.
'개발 기초 다지기' 카테고리의 다른 글
JWT/인증 미들웨어 복습(팀프로젝트와 회고하며 복습하기) (0) | 2024.06.10 |
---|---|
RESTful API에 대하여 (0) | 2024.06.07 |
알고리즘 문제 풀이 (부족한 금액 계산하기, 문자열 다루기 기본, 행렬의 덧셈) (0) | 2024.06.04 |
효율적인 응답 메세지 관리 (message.constant.js 파일 이용하기) (1) | 2024.06.03 |
EC2 인스턴스 재시작시 오류 해결 (0) | 2024.05.31 |
댓글