[실서비스 운영] TypeORM 마이그레이션(migration)


[실서비스 운영] TypeORM 마이그레이션(migration)

이번 시간에는 실제로 운영하고 있는 서비스에서 DB의 테이블 또는 컬럼을 수정해야 할 때 어떻게 해야 하는 지 알아보자. (아래의 예제는 Nest.js 환경으로 구성되어 있다.) 마이그레이션을 하는 이유 배포를 하게 되면 DB의 구조가 변경됨에 따라 데이터베이스를 동기화해야 한다. 일반적으로 배포 환경에서 synchronize: true를 사용하는 것은 안전하지 않다. 왜냐하면 synchornize: true는 자체적으로 코드를 분석해서 DB의 변경 사항을 반영하는데, 이 때 코드를 완벽하게 분석해서 반영을 해주지 못한다. 예를 들면, 잘못된 DB 변경사항 반영으로 인해 DB의 데이터가 소실되기도 한다. 실 서비스에서 데이터가 소실된다는 건 치명적인 에러이다. 따라서 배포 이후라면 반드시 TypeORM의 migration 기능을 사용해야 한다.(DDL로 직접 DB의 스키마를 수정해도 상관없다. 확실한 건 배포 환경에서 synchornize: true 쓰면 절대 안 된다.) 마이그레이...


#migration #TypeORM #마이그레이션 #실서비스운영

원문링크 : [실서비스 운영] TypeORM 마이그레이션(migration)