장고3의 makemigrations의 소기

2528 단어 장고MySQL파이썬

개요



이제 개발중인 장고 프로젝트를 마이그레이션 할 때 models.py 코트를 작성하고 지우고 있기 때문에 데이터베이스를 잘 지우는 것이 좋습니다.
거기서, 스스로 조사해 보고, 간단하게 migration의 변경을 삭제, 갱신할 수 있도록(듯이) 하고 싶다고 생각해, 망비록으로서 기입해 가고 싶습니다. 또한 내 환경에서find . -path "*/migrations/*.py" -not -name "__init__.py" -deletefind . -path "*/migrations/*.pyc" -delete라고 쓰면, Django를 재설치하는 하메가 되었기 때문에. 이 명령은 사용하지 않습니다.

개발 환경



django==3.2.1
python==3.9.1
데이터베이스 == MySQL

계기



이번에 나는 accounts라는 응용 프로그램의 models에 User라는 AbstractBaseUser를 재정의 한 models를 만들었는데 primary_key를 설정하고 makemigrations 해 버렸기 때문에 이런 것이 터미널에 매번 나왔다. 버립니다.WARNINGS:
accounts.User: (models.W042) Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'.
이것을 지우기 위해 migrate하고 데이터베이스에 저장되어 버린 primary_key의 값을 없었다고 싶습니다.

migrate 명령 요약



makemigrations


python manage.py makemigrations (アプリケーション名) 
migrate


python manage.py migrate (アプリケーション名)
migration했을 때의 name를 변경

python manage.py makemigrations --name (付けたい名前)
migrate의 기록보기


python manage.py showmigrations (アプリケーション名) [ ]=migrate하지 않음
[ X ]=migrate 완료

migrate 되감기


python manage.py migrate (ファイル名) 파일 이름은 0001 또는 0002로 시작하는 파일을 가리킵니다. 지정한 파일명의 직전까지, 되감게 됩니다.

migrate를 모두 다시 시도


python manage.py migrate (アプリケーション名) zero
기록에서도 삭제



migration 파일 삭제


내 경우


python manage.py showmigrations accounts결과accounts
[X] 0001_initial
[] 안의 X 는 migrate 했을 때에 표시됩니다. (makemigrations 때는 비어 있습니다.)
migrate 시에 데이터베이스에 모델이 저장되는 것 같습니다. 즉, 이 X 가 사라지면, 데이터베이스의 변경이 없어지는 것 같다 . 그래서 다음 명령을 사용하여 migrate를 사용하지 않았다고 가정합니다.python manage.py migrate accounts zero결과accounts
[ ] 0001_initial
되었습니다.
이를 완전히 지우려면 응용 프로그램의 migrations 및 __pychahe__에 있는 0001로 시작하는 파일을 지웁니다.
이 후, 사용하고 있던 데이타베이스도 삭제해, makemigrations,migrate를 실시했습니다만, warning은 사라지지 않았습니다. . .
우선, error는 되어 있지 않으므로, 이대로 진행해 나가려고 생각합니다.
이 warning에 대해, 지식이 있는 분은 연락을 주시면 도움이 됩니다.

좋은 웹페이지 즐겨찾기