인프런 커뮤니티 질문&답변

ajrfyd님의 프로필 이미지

작성한 질문수

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

필독!!

DB data 재활용 관련 질문

24.08.22 14:41 작성

·

26

0

데이터 베이스를 사용하면서 궁금한점이

postgres-data폴더에 db관련 정보들이 저장되는것 같은데

entity의 변경과 같은 이유로 초기화를 해야 할때

초기화 후 기존에 저장했던 부분을 살릴 수 있는 방법이

없을까요??

(ex postgres-data폴더의 어떤 파일을 살려라 등)

답변 1

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

2024. 08. 23. 09:29

안녕하세요!

sync:true로 자동으로 연동되지 않는다면 불가합니다.

왜냐면 sync:true 옵션 자체가 현재 데이터베이스를 Entity와 같게 구현하라는 뜻이고 자동으로 불가한 경우는 데이터베이스 테이블 포맷을 변경 할 수 없는 경우입니다.

데이터가 없는 경우는 무조건 진행이 가능합니다. 하지만 강의에서도 보여드린대로 만약에 변경해야하는 테이블에 데이터가 존재한다면, 그리고 예를들어 default 값이 존재하지 않는 칼럼을 추가하려 한다면 Typeorm에서 이미 존재하는 Row 들에 새로운 Column 값을 어떻게 산정해야할지 알 수 있는 방법이 없습니다.

물론 migration 기능을 사용 할 수 있습니다. 프로덕션 환경에서는 꼭 사용해야하는 방식이지만 (데이터베이스가 날라가면 안되기 때문에) 개발중에는 오히려 개발 속도에 영향을 주게 됩니다. 매번 데이터베이스가 변경 될때마다 DDL 스크립트를 짜야하고 개발환경에는 사실 너무도 많은 변화가 있을 수 있기 때문에 효율적이지 못합니다.

감사합니다!

ajrfyd님의 프로필 이미지

작성한 질문수

질문하기