$ python manage.py migrate
...
django.db.utils.DataError: value too long for type character varying(10)
오류의 요지는 마이그레이션할 때 value 길이가 필드 length 설정에 비해 너무 길다는겁니다. model의 필드 길이가 잘못 설정되어 있거나 필드의 default 또는 choices가 잘못되어 있을 가능성이 있습니다.
제 경우를 예로 들면 char 필드 max_length가 10이었고, 기본값은 enum의 value가 들어가야 되는데 enum이 통째로 들어가버려서 <enum 어쩌구저쩌구..(A, 1)>
이런식으로 default 값이 들어가는 바람에 이런 에러가 발생했습니다. 사실 어떻게 보면 에러를 미연에 막은 거기도 합니다.
이걸로 오늘 삽질을 좀 했는데, 빠르게 원인을 파악하려면 앱 내의 migrations 폴더의 마이그레이션 py 파일(ex. 0058_auto_20210105_1321.py)을 확인해보세요.
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Django] nullable 필드를 기본값 없는 non-nullable 필드로 변경할 때 유의사항 (0) | 2021.01.07 |
---|---|
[Django] 마이그레이션할 때 Fixed DateTime Warning 해결방법 (0) | 2021.01.07 |
[Django] circular import 해결방법 (0) | 2021.01.05 |
[Python] set 대칭차 (symmetric difference) (0) | 2020.11.01 |
[Python] 반복문 Cheatsheet (0) | 2020.10.31 |