[Django] 이슈 : Conflict Migration

Yungsang Hwang·2022년 5월 26일
0

Django

목록 보기
2/15

이슈

Django를 처음 세팅하고, models.py에 계정 클래스를 처음 생성해본다는게 user앱이 아닌 프로젝트앱에 코드를 작성하고, settings.py에 프로젝트 이름을 넣어 강제로 migration을 진행했다.

이후 세팅이 잘못되었다는 것을 알게되고, 무작정 파일을 옮기고 삭제하는 등의 수정을 진행했으며 새롭게 migration을 진행하니 같은 모델 함수가 충돌하게 되었다.

마이그레이션 충돌을 해결하기 위해서 유저 앱과 데이터베이스를 삭제하고 진행했지만, 초기화 해버려서 마이그레이션 모듈이 없다고 나왔다.

다시 구글링해서 Django 버전을 확인한 후 강제 재설치를 진행했다.

마이그레이션 충돌 : 오류 코드

Error : Conflicting 'usermodel' models in application 'user': <class 'user.models.UserModel'> and <class 'user.migrations.models.UserModel'>.

마이그레이션 충돌 : 구글링 레퍼런스

블로그 : Django Migration 초기화

마이그레이션 충돌 : 트러블슈팅

init을 제외한 데이터 초기화

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc"  -delete

db.sqlite3 데이터베이스 삭제

user app 삭제

user app 재생성

django-admin startapp user

models.py 코드 다시 작성

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test/', views.base_response, name='first_test'),
    path('first/', views.first_view, name='first_view'),
]

migration 재시도

python manage.py makemigrations

마이그레이션 모듈 없음 : 오류 코드

ModuleNotFoundError: No module named 'django.db.migrations.migration'

마이그레이션 모듈 없음 : 구글링 레퍼런스

블로그 : Django DB 초기화

마이그레이션 모듈 없음 : 트러블슈팅

Django 버전 체크

python -m django --version

Django 재설치

pip install --upgrade --force-reinstall Django==4.0.4

migration 재시도

재시도는 성공!

python manage.py makemigrations

python manage.py migrate
profile
하루종일 몽상가

0개의 댓글