wafflestudio / seminar-2021

2021 Rookies 세미나
47 stars 110 forks source link

장고 과제 3 - test database 관련 질문 #544

Closed kk0in closed 2 years ago

kk0in commented 3 years ago

안녕하세요. 과제를 진행하다가 헷갈리는 점이 생겨서 아래와 같이 질문을 드립니다.

  1. test database를 직접 조회할 수 있는 방법은 없나요? 검색을 많이 해봤는데, 나오는 것이 없어서 확인 차 질문드립니다.

  2. 테스트 클래스를 많이 만들면서 자연스레 setUpTestData 함수를 많이 쓰게 되었는데, 이 과정에서 다음 클래스로 넘어갈 때, DB를 삭제하며, id는 리셋이 되지 않고 누적되는 상황이 발생합니다.. 혹시 이것을 해결할 수 있는 방법에 대해 힌트를 주실 수 있으신가요? 작년 이슈도 확인해서 동일한 이슈(https://github.com/wafflestudio/18.5-rookies/issues/228#issuecomment-703154450)를 찾았으나, 거기에 적혀있는 방법으로 해결이 안되는 상황입니다 ㅜㅜ

감사합니다!

Jhvictor4 commented 3 years ago

@kk0in test database도 컴퓨터에 생성이 되는데, django test를 사용하면 test 주기동안 새로 만들어졌다가 파괴됩니다. --keepdb 옵션을 통해서 유지하고 남은 결과물을 볼 수 있기는 합니다. 직접 id로 api 호출을 하는데 id 값이 다르게 나타나나요?

kk0in commented 3 years ago

@Jhvictor4 답변 감사합니다. 음.. 테스트 클래스가 바뀔 때, test database에 있던 row들을 delete 하고, 그대로 row를 다시 추가하는 바람에 id가 누적되서 카운트되는 것 같습니다. 예전에도 datagrip 등을 이용해서 db를 직접 조회할 때도 비슷한 문제가 있었는데, 이때는 ALTER TABLE [TABLE명] AUTO_INCREMENT = [시작할 값]; 를 이용해서 id도 같이 초기화했던 기억이 있습니다. 그런데, 지금은 test db여서 이 방법을 쓰지 못하는 거 같아서 혹시 다른 방법이 있는지 해서 여쭤본 것입니다!