TIL-58. inspectdb 에러

solarrrrr·2022년 2월 28일
0

Today I Learned

목록 보기
58/74
post-thumbnail

외부 DB를 가져와 작업을 진행해야 할 경우가 생겼다.
django에서는 inspectdb라는 걸 통해 외부 DB의 models.py를 가져오는 놀라운 기능이 있어서 사용해 보았다.

그런데 53~55개 정도의 붉은 메시지들이 뿜어졌다.
총 에러코드는 3개였는데 문제 해결에 정신이 없어서 코드 번호가 기억이 안 난다. ㅜㅜ

대략 해결은 아래와 같이 진행했다.

  1. max_length=-1 값 수정
  2. django settings.py에서 install_app과 middleware에 auth 관련 부분 주석 처리
  3. related_name 추가

inspectdb가 완벽하진 않아서 간혹 pk 값이 유실된다거나
내 경우처럼 max_length 값 같은 부분이 -1로 바뀐다거나 하는 문제가 있다고 한다.

그래서 하나의 에러는 해결했고, 다음으로 auth 관련 주석처리는
에러 코드 문구와 구글링을 통해 주석처리하는 형태로 해결했는데
이건 사실 정확히 왜 그런지 알고 처리된 게 아니어서 아쉽다.
바로 기록을 해 두었어야 했는데.

마지막으로 related_name 관련해서 가장 에러가 많이 나왔는데
하나의 테이블 하에 여러 필드가 foreign_key로 동일한 다른 테이블을
참조하고 있는 경우가 있었다.

이런 경우 related_name을 통해 구분을 해 주면 되기 때문에
이를 통해 이슈를 모두 해결했다.

일단 구분을 위해서 필드명을 related_name으로 적어넣었는데
참조 주체를 정확히 명시해야 하는 규칙이 있던 걸로 기억하는데
추후 이 부분은 따로 정리해야겠다.

profile
몰입

0개의 댓글