본문 바로가기
[Back-End]/[Error]

[Django] [Error] django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database 'default'.

by Yong9_9 2023. 11. 12.

User모델 확장

  • username을 None으로 설정하고 이메일을 고유한 식별자로 사용
  • **USERNAME_FIELD**를 이메일로 설정하여 사용자 인증 시에 이메일을 사용
  • 닉네임과 프로필 사진을 유저 모델에서 관리하려고 함

소스코드

# accounts/models.py

from django.contrib.auth.models import AbstractUser
from django.db import models

class User(AbstractUser):
    username = None
    email = models.EmailField(unique=True)
    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []
    nickname = models.CharField(max_length=8, default='')
    profile_pic = models.ImageField(blank=True, null=True)
  • 참고로 User모델 확장을 위해 AbstractUser 클래스를 상속해야함.
# settings.py

AUTH_USER_MODEL = 'accounts.User'

accounts 앱에서 만든 User모델을 통해 auth기능을 사용하기 위해 settings.py에 추가

마이그레이션 명령어를 입력하자 에러가 발생했다.

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database 'default'.

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database 'default'.

해결방안

  • 확장 도중 에러가 발생해 여러가지 해결 방법을 시도 해 보았지만 해결되지 않아 모든 migrations 파일을 삭제한다(init.py 제외), db.sqlite3 을 삭제 를 진행하였다.

참고 내용

django | User 모델을 이용한 Signup, User 확장

[django] 오류 django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database 'default'.

댓글