작성
·
519
답변 1
0
안녕하세요.
장고 3.2 부터 auto field의 타입을 지정할 수 있는 기능이 생겼습니다. auto field는 장고 모델에서 디폴트 pk 필드로서 사용이 됩니다. 3.2 이전에서는 django.db.models.AutoField 였으며, 3.2 부터는 django.db.models.BigAutoField가 됩니다.
관련 공식문서 : https://docs.djangoproject.com/ko/4.0/releases/3.2/#customizing-type-of-auto-created-primary-keys
아마도 장고 3.2 이전 버전으로 현재 프로젝트를 생성하셨고, 지금 서버 구동 시에는 장고 3.2 이상을 설치하신 듯 보입니다. 강의에서는 3.0.x 기준으로 설명드리고 있습니다.
장고 3.2 이상에서는 프로젝트를 생성하시면 settings에 DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" 설정이 자동으로 추가됩니다.
그런데 장고 3.2 이전에 생성하신 각종 모델들은 django.db.models.AutoField 타입으로 되어있습니다. BigAutoField 타입으로 지정하시면 추가적으로 타입 변경을 위한 DB 마이그레이션이 필요합니다.
장고 3.2 이상을 쓰신다면
settings에 DEFAULT_AUTO_FIELD = "django.db.models.AutoField" 설정을 추가하고, 별도의 DB마이그레이션없이 프로젝트를 진행하다가 BigAutoField가 필요한 시점에 설정을 변경해서 DB마이그레이션을 수행하셔도 되구요.
혹은 지금 BigAutoField로 변경하셔서 DB마이그레이션을 수행하셔야 됩니다.
그리고, 질문 제목에는 본 질문을 요약해서 써주시면, 다른 분들에게도 본 질문이 도움이 될 수 있습니다. 부탁드리겠습니다.
화이팅입니다. :-)