내용
- 유저 학습정보 데이터
MySQL
→ MongoDB
nestjs-command
사용해서 nestjs
로 만들어진 기능을 cli로 실행
메인 기능
- 학습정보의
updatedAt
을 조건 key로 잡고, 마이그래이션 하고자하는 시작날짜와 종료날짜를 입력받음
- 첫번째 마이그래이션 프로그램을 실행할때는 시작날짜가 레코드의 제일 과거로 들어가고, 종료날짜는 현시각으로 들어감
- 첫번째 마이그래이션이 시작될때 시작 날짜(시간)를 “마이그래이션 실행 히스토리” 파일에 기록함
- 첫번째 마이그래이션은 전체데이터를 마이그래이션 하기때문에 총 9시간정도의 처리시간이 걸림
- 두번째 마이그래이션은 “마이그래이션 실행 히스토리” 파일의 가장 마지막줄에 있는 날짜(시간)을 읽어와서 시작날짜로 넣어주고, 현시각을 종료날짜로 넣어줌
- 이전 마이그래이션이 처리되는 도중에 누락된 데이터를 마이그래이션 해줄 수 있음
- 두번째 실행이라 처리시간이 오래걸리지 않음
로그핸들러
@nestjs/common
에 내장된 Logger 를 상속받아서 CustomLogger 구현
MySQL
읽어온 데이터의 개수
MongoDB
에 저장된 데이터 개수
- 데이터가
MongoDB
로 들어갈 때 마다 디버깅에 필요한 레코드의 컬럼 정보
destroy 기능
- 스테이징 서버를 여러 개발자가 공유해서 사용하기 때문에 해당 프로그램을 통해서 생성된 데이터만 타겟해서 관리 될 필요가 있었음