본문으로 바로가기

[Django] model migration 꼬였을 때

category Frame Work/Django 2021. 9. 18. 04:02
728x90
반응형

장고에서는 abstractbaseuser 모델이라는 기능을 제공한다. 개발자가 계정에 관련하여 커스텀하여 사용할 수 있게끔 제공해주는 기능이다. 나의 경우 sample db를 사용해 이미 migrate를 진행한 뒤 abstractbaseuser 모델을 적용시키려던 상황에서 다음과 같은 Error가 났다.

abstractbaseuser 모델을 상속받아 작성한 클래스가 Account라는 이름을 가진 클래스인데 해당 에러는 account 모델을 core라는 앱에서 제공을 하지 못하는 상태라고 한다. 그러니 다음과 같이 마이그레이션을 되돌렸다.

# migration의 위치를 처음으로 되돌림
python manage.py migrate core zero

# `core`라는 이름을 가진 app에 대하여 migration 생성 
python manage.py makemigrations core

그런데 위의 과정을 수행하기 전에 큰 실수를 하나 저질렀다. 문제를 해결하기 위해 검색 중 auth에 관련된 테이블 모두 지워버리고 다시 migrate를 하니 아래와 같은 에러가 일어났다.

 

해당 문제를 해결하려고 삽질 시도 후 auth라는 테이블의 migration을 내역이 아래와 같이 되어있기 때문이 아닌가 하고 되돌리기로 결정했다.

# auth 마이그레이션 내역 초기화
python manage.py migrate --fake auth zero

python manage.py showmigrations

성공이다

migration 내역을 다루다 보니 왠지 git을 처음 사용할 때가 생각난다...

728x90
반응형