Django 포스팅
Doyeon0430 | 2023년 05월 30일
이번시간에는 Django에서 models.py 수정 후 migrate를 했을 때 생기는 NodeNotFoundError 오류에 대해 해결해보겠습니다.
깃 오류 내용
error: The following untracked working tree files would be overwritten by merge:
mywork/migrations/0006_alter_comment_content.py
git으로 옮기는 중 파일을 수정하고 커밋하지 않은 상태에서 브랜치를 전환하거나 병합한 경우
git에서는 충돌을 방지하기 위해 발생시키는 오류입니다.
이 오류는 그냥 0006_alter_comment_content를 삭제하면 간단히 해결됩니다.
이후 manage.py를 실행할 때 오류가 발생하는데 해결해보겠습니다.
manage.py 오류 내용
django.db.migrations.exceptions.NodeNotFoundError:
Migration mywork.0007_mywork_meta dependencies reference
nonexistent parent node ('mywork', '0006_alter_comment_content')
저는 위와 같이 장고 파일 중 migrations에 오류가 발생해 경고문이 떴습니다.
이런 상황이 생기는 이유는 0006_alter_comment_content를 참조하고 있는데 찾을 수 없다는 뜻입니다.
그럼 해결해보겠습니다.
1. [0007_mywork_meta.py] 수정 전
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('mywork', '0006_alter_comment_content'),
]
operations = [
migrations.AddField(
model_name='mywork',
name='meta',
field=models.CharField(default=1, max_length=50),
preserve_default=False,
),
]
0007_mywork_meta.py를 확인해보면 dependencies에 0006_alter_comment_content가 입력되어 있습니다.
하지만 git 충돌때문에 0006_alter_comment_content를 삭제했죠.
그럼 저 부분을 예전에 사용했던 migrations 파일로 수정해주면 됩니다
2. [0007_mywork_meta.py] 수정 후
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('mywork', '0005_comment'),
]
operations = [
migrations.AddField(
model_name='mywork',
name='meta',
field=models.CharField(default=1, max_length=50),
preserve_default=False,
),
]
바로 위 자신의 migrations파일로 대체해주면 쉽게 오류가 해결되면서 runserver가 실행될겁니다.
요약하자면 dependencies가 파일을 찾을 수 없으니까 생기는 오류라 실제있는 파일을 입력하면 됩니다.
글을 마치며 git 충돌로 생긴 파일을 삭제하고 수정해보는 작업을 해봤습니다.
댓글 (1)
24/04/05 06:16 | 삭제
간편 댓글 작성