관리자py migrate 잘못된 문제 해결
검사 과정
python3 manage.py dbshell
을 데이터베이스에 들어가서 표에 결과가 존재하는지 확인한다. 표에 migrations 파일 검사 결과가 존재하지 않는다. 파일은 문제없다python3 manage.py dbshell
. 데이터베이스에 들어가고 실행delete from django_migrations where app='your_appname';
python3 manage.py makemigrations
(migrations 파일이 삭제되지 않으면 이 단계를 실행하지 않는다)python3 manage.py migrate
됐다.원인 분석 보기djangomigrations 테이블 구조 작성 문구: CREATE TABLE "django migrations"("id"integer NOT NULL PRIMARY KEY AUTOINCREMENT, "app"varchar(255) NOT NULL, "name"varchar(255) NOT NOL NOT NULL, "applied"datetime NOT NULL);
원인:migrations를 여러 번 적용하는 데 실패한 이유는 현재 모델이 수정되었기 때문입니다. 원래의migrations는 제가 삭제했지만 다시 생성된migrations는 점증 정수 기명을 사용하기 때문에djangomigrations 테이블에서 00010002 등 앞의 몇 개의 숫자의 파일이 기록되었는데 Django가 보기에 기록된 것은 이미 응용된 것과 같기 때문에 처음에 No migrations to apply가 나타날 것이다.
비활성화 시나리오:
강박증이 있으면migrations 파일을 삭제하는 학생(예를 들어 나)은 데이터베이스에 상응하는 기록을 삭제하고 강박증이 없는 학생은 새로운migrations를 계속 생성할 수 있습니다. 낡은 것은 아랑곳할 필요가 없습니다.
python3 manage.py migrate
를 실행한 후 python3 manage.py sqlmigrate appname migrations_num
(예를 들어 python3 manage.py sqlmigrate user 0002
)를 사용하여 현재migrations 파일에 대응하는 sql 문장을 볼 수 있습니다.또한 상기 명령을 사용하여 0002 파일의 sql 문장을 볼 때django가 테이블user 를 새로 만듭니다new, 그리고user표의 데이터를 삽입하고user표를 삭제하고usernew 이름 바꾸기user.따라서 모델을 수정할 때 기존 데이터가 분실될 염려가 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.