inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

db가 이미 존재한다는 오류가 뜹니다

해결된 질문

419

yskim

작성한 질문수 7

0

스크린샷 2023-05-09 171228.png스크린샷 2023-05-09 171254.pnggraphql 방식이 아닌 rest로 변경하면서 다시한번 복습중인데 rest의 경우 app.module.ts에서 TypeOrmModule.forRoot({})에서 synchronize: true, 가 되어있을 시 db오류가 나는데 제가 다른 것을 잘못 설정한 것인가요?

javascript node.js express docker tdd rest-api nestjs

답변 1

0

노원두

안녕하세요! yskim님!

해당 문제는 먼저, graphql과 rest 방식의 차이와는 큰 관련이 없는 것으로 보여집니다!

 

해당 에러 메시지를 살펴보니, product_category2가 이미 존재한다는 것 같아요!

 

synchronize의 여부가 문제인 것 같은데! synchronize가 true인 경우, 작성된 entity를 데이터베이스 테이블에 적용하려는 시도가 자동으로 이루어집니다! 말 그대로 동기화하다 이지요?!

이 과정에서, 이미 존재하는 테이블을 다시 만들려고 시도하면서 실패한 것 같아요!

 

그러면, synchronize를 false로 하였을 때는 왜 괜찮았는가?!

그 이유는, synchronize를 false로 두면, 사용자가 직접 작성한 테이블 변경 쿼리를 전송하지 않으면 아무 일도 일어나지 않기 때문에 그렇답니다!

그러면 언제 해당 옵션을 사용하는가?, 실 배포시에 synchronize를 false로 합니다. 왜냐면 entity 구조를 자동으로 테이블에 동기화 시키도록 시스템에 맡길 시, 컬럼이 통째로 삭제된다던가 하는 위험한 상황이 발생할 수 있기 때문이에요!

 

따라서, 해결 방법으로는 아래 2가지가 있습니다.

  1. 연습이신 경우, 해당 테이블을 dbeaver에서 제거하고 다시 만드셔도 괜찮습니다.

  2. 실 배포를 하시는 경우, synchronize를 false로 하시고, 테이블을 변경하는 쿼리를 추가로 작성하여 전송해야합니다

 

 

그래프 ql 문서 사용할때 느낌표 남는거 어떻게 없애나요?

0

86

2

강의 전체 소스 코드를 받고싶습니다.

0

77

2

fontawesome 사용 문의

0

80

2

소스 코드 부탁드립니다~

0

87

2

깃 레포지터리 소스

0

87

2

커리큘럼12.css 정렬 에 나오는 과제 정답알고싶어요

0

74

2

10-01 Entity TypeOrmModule.forRoot 에 entities

0

89

3

강의 버전관련 문의입니다

0

104

2

Ubuntu 설치 관련

0

62

1

schema.gql 질문 드립니다.

0

51

1

서버 재실행시 Many to Many

0

102

3

input 관련 문의

0

90

2

Rest API 보다는 graphql이 주된 내용인데

0

134

2

강의 전체 소스코드 받을수있을까요?

0

156

1

도커볼륨 마운트 관련

0

127

2

findOne 타입스크립트오류

0

109

1

http => htrtps 호출 인증서 신뢰 오류

0

356

1

self-signed certificate in certificate chain 에러 발생

0

421

1

mongoose 설치 오류

0

143

1

특정 API, 특정 IP 허용 (단일경로에 CORS 활성화)

0

285

2

08-06

0

180

3

구조랑 패턴 관련해서 질문

0

126

2

mydocker

0

129

2

coolsms statuscode 2000 인데 전송안돼는 경우 확인.

0

156

1