[Django]makemigrations명령 실행시 System Error 발생

김은지·2022년 5월 14일
0

학습 내용 정리

목록 보기
18/25

django 프로젝트를 하며 모델링을 하던 중에 아래와 같이 처음보는 애러가 발생했다.

reviews.Review모델의 movie필드와 core.timestampmodel의 movie필드가 충돌한다는 말인건가
이 애러가 왜 발생하는건지 모르겠다...

stackoverflow Django 1.9: Field clashes with the field of non-existing field in parent model

검색해보니 해결방법으로 프로그램 setting 파일에 아래 코드를 추가하라는 말이 있었는데

#settings.py
SILENCED_SYSTEM_CHECKS = ['models.E006']

발생하는 애러를 무시하는 옵션일테니까
일단 makemigrations명령은 실행이 되고
migrate를 했더니
core.TimeStampedModel을 통해 생성되어야 할 created_at, updated_at 컬럼 대신
timestampedmodel_ptr_id라는 컬럼이 생겼다...

이건 뭐란말임...
검색으로도 해결이 안 되길래
장고 버전 문제일까? 상상의 나래를 펼치며
저녁먹고 코드를 다시 봤더니
core 앱에 작성한 TimeStampedModel의 meta class의 두 곳에서 오타를 발견했다.

수정 - makemigrations - migrate 모두 성공

결론 : migration파일을 생성할 때, 'models.E006'시스템 에러가 발생하거나, migrate 후, timestampedmodel_ptr_id가 생기면 모델링 코드에 오타가 없는지 확인하십시오.

~끝~

0개의 댓글