My Image

Django 포스팅

[Django] Git merge 충돌과 NodeNotFoundError 오류 해결하기

Doyeon0430 | 2023년 05월 30일

Django 이미지

이번시간에는 Django에서 models.py 수정 후 migrate를 했을 때 생기는 NodeNotFoundError 오류에 대해 해결해보겠습니다.

 

  1. Django git pull 충돌 - git merge

  2. Django git pull 충돌 - 마이그레이션 오류 원인

  3. Django git pull 충돌 - 마이그레이션 오류 해결

 

 

1. Django git pull 충돌 - git merge

깃 오류 내용

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를 실행할 때 오류가 발생하는데 해결해보겠습니다.

 

 

2. Django git pull 충돌 - 마이그레이션 오류 원인

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를 참조하고 있는데 찾을 수 없다는 뜻입니다.

그럼 해결해보겠습니다.

 

 

3. Django git pull 충돌 - 마이그레이션 오류 해결

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)

    RonaldDot
    FlipBooks are a great addition to any passive income strategy. Because once you create a FlipBook, market it, share it & Earn it, it can technically sell itself. Learn More https://www.youtube.com/watch?v=JfRrd79oCfk?13566

    24/04/05 06:16 | 삭제

간편 댓글 작성

My Image My Image My Image My Image