프로젝트를 진행하면서 변경사항이 없어도 계속 makemigrations가 가능해 migration 파일이 계속 생성되는 오류가 발생했다.
이유를 생각해 보니 role 필드의 choices 옵션이 떠올랐다.
ROLE_CHOICES = { # <- set!
(STUDENT, "student"),
(TEACHER, "teacher"),
(ADMIN, "admin"),
}
role = models.PositiveSmallIntegerField(choices=ROLE_CHOICES)
위와 같이 ROLE_CHOICES를 set 자료형으로 만들었는데, 파이썬의 set 자료형은 순서가 존재하지 않는다.

그래서 migration 파일을 보면 status의 choices 옵션이 makemigrations 할때마다 이것만 바뀐 파일이 생성되는 것을 알 수 있다.
결론은 set 자료형이 아닌 tuple 혹은 list 자료형을 사용해주면 된다
ROLE_CHOICES = ( # <- tuple!
(STUDENT, "student"),
(TEACHER, "teacher"),
(ADMIN, "admin"),
)
role = models.PositiveSmallIntegerField(choices=ROLE_CHOICES)
'겪었던 오류' 카테고리의 다른 글
django.db.utils.OperationalError: (2002, "Can't connect to MySQL server on 'db' (115)") (0) | 2021.05.31 |
---|---|
[겪었던 오류] Python @lru_cache TypeError (0) | 2021.05.07 |
[Spring] travis ci로 자동 배포 하던 도중 변경사항 적용 안됨 (0) | 2021.02.16 |
[Spring] There is insufficient memory for the Java Runtime Environment to continue. (0) | 2021.02.14 |
[AWS] Permission denied (publickey,gssapi-keyex,gssapi-with-mic) (0) | 2021.02.13 |