$ 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)을 확인해보세요.

반응형