인프런 커뮤니티 질문&답변

조윤식님의 프로필 이미지

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

PostgreSQL DB와 연동하고 도커를 통해 마이그레이션 수행하기

python3 manage.py showmigrations 에서 오류

작성

·

304

0

# python3 manage.py showmigrations

Traceback (most recent call last):

File "manage.py", line 21, in <module>

main()

File "manage.py", line 17, in main

execute_from_command_line(sys.argv)

File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 401, in execute_from_command_line

utility.execute()

File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 395, in execute

self.fetch_command(subcommand).run_from_argv(self.argv)

File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 328, in run_from_argv

self.execute(*args, **cmd_options)

File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 369, in execute

output = self.handle(*args, **options)

File "/usr/local/lib/python3.6/dist-packages/django/core/management/commands/showmigrations.py", line 52, in handle

return self.show_list(connection, options['app_label'])

File "/usr/local/lib/python3.6/dist-packages/django/core/management/commands/showmigrations.py", line 71, in show_list

loader = MigrationLoader(connection, ignore_no_migrations=True)

File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/loader.py", line 49, in init

self.build_graph()

File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/loader.py", line 274, in build_graph

raise exc

File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/loader.py", line 248, in build_graph

self.graph.validate_consistency()

File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/graph.py", line 195, in validate_consistency

[n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]

File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/graph.py", line 195, in <listcomp>

[n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]

File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/graph.py", line 58, in raise_error

raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)

django.db.migrations.exceptions.NodeNotFoundError: Migration accounts.0001_initial dependencies reference nonexistent parent node ('auth', '0012_alter_user_first_name_max_length')

powershell에서 python3 manage.py showmigrations명령을 수행했을때 위와같은 오류가 뜨네요.. 뭐가 문제인걸까요?

답변 1

0

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

아마도 장고 프로젝트를 생성하시고, accounts 앱을 만드시고, User 모델을 만드시고, settings.AUTH_USER_MODEL 로 등록하시고, python manage.py makemigrations accounts 명령을 내리실 때의 장고 버전과 현재의 장고 버전이 낮아서 발생하는 이슈 같습니다.

아래의 오류에서 auth 앱의 0012 마이그레이션은 장고 3.1 이상부터 있는 마이그레이션파일입니다. accounts 앱에 대해서 makemigrations 명령을 내릴 때는 auth 0012 마이그레이션이 있었는 데, 지금은 없다는 오류 내용인 것이죠.

django.db.migrations.exceptions.NodeNotFoundError: Migration accounts.0001_initial dependencies reference nonexistent parent node ('auth', '0012_alter_user_first_name_max_length')

장고 3.0.x 버전에서는 auth 0012 마이그레이션 파일이 없습니다. accounts 앱에 대한 makemigrations 명령에서는 장고 3.1.x 이상이셨고, 지금은 3.0.x 버전으로 보이십니다. 프로젝트 처음부터 장고 3.0.x 버전이셨다면 이 오류는 만나지 않으셨을 텐데요.

  • 방법1) 장고 3.0.x가 아닌 3.1.x 버전을 설치하시고 이후 강의를 진행하셔도 됩니다. 3.0.x와 3.1.x은 강의 내용에 있어서 거의 유사합니다. 특별한 이슈는 없을 것으로 생각이 듭니다.

    • 명령) python -m pip install "django~=3.1.0"

  • 방법2) 혹은 db.sqlite3 데이터베이스를 날리고 accounts/migrations/0001_initial.py 파일을 삭제하고, 다시 accounts 앱에 대해서 makemigrations 명령을 다시 수행하시는 방법도 있습니다.

살펴보시고, 댓글 남겨주세요.

화이팅입니다. :-)

조윤식님의 프로필 이미지
조윤식
질문자

장고 3.1 버전 설치하는것으로 해결되었습니다 감사함니다^^