필드 삭제 , 마이그레이션 후에도 삭제한 필드가 계속 남아있는 에러

현상

Client 모델에서 menu라는 필드를 제거했는데

뷰에서 필터링 해올때 쿼리문을 보니 menu필드를 그대로..가져온다.

"Unknown column 'client.menu' in 'field list'

디버거에서 출력하는 메세지를 보니 Unable to get repr for <class 'django.db.models.query.QuerySet'> 으로 되어 있다.

원인

Dirty Migration

  • 마이그레이션이 제대로 안 됬을 때 해당 에러가 발생한다고 함...
  • MySQL 테이블에는 제대로 마이그레이션 되있는데 장고 상에 (?) 제대로 반영 안된듯...
  • 알고보니 feature 브랜치를 분기 한 후 메인 브랜치에 merge를 안 시켜줬었음...
  • 그래서, 모델을 바꿨었는데 그게 반영된게 아니라 feature브랜치에만 반영되 있었던 상태...
  • 근데 심지어 그게 내가 생각한 rename_table 브랜치에 반영된거도 아닌 remove_field라는 브랜치에 반영되어 있었음.

해결

  • 브랜치를 분기한 이후에는 반드시 merge를 시켜주자!!
  • 마이그레이션 초기화를 진행해본다

https://stackoverflow.com/questions/44375188/shows-unable-to-get-repr-for-class-django-db-models-query-queryset-while-r

좋은 웹페이지 즐겨찾기