django.db.utils.ProgrammingError:(1146,u"Table'doesn't exist")문제 해결

현상
최근 데이터베이스 에서 표 한 장 을 삭 제 했 습 니 다.다시 실행python manage.py migrate하 는 중 오류 가 발생 했 습 니 다.이 표 가 존재 하지 않 음 을 알려 줍 니 다.관련 자 료 를 찾 아 마지막 으로 관련 해결 방법 을 찾 았 습 니 다.다음은 더 이상 말 하지 않 겠 습 니 다.상세 한 소 개 를 해 보 겠 습 니 다.
이유
주로 django 는 보통 처음 이전 할 때 새 시 계 를 만 들 기 때문에 뒤의 시 계 는 새로 만 들 지 않 고 필드 등의 변화 만 검사 하기 때문에 우 리 는 이 시 계 를 삭 제 했 으 니 django 가 이 표 의 필드 변 화 를 검사 할 때 자 연 스 럽 게 잘못 보고 합 니 다.
해결 방법
해결 방법 은 여전히 실행python manage.py makemigrations python manage.py migrate입 니 다.이것 을 실행 하기 전에 이전 생 성 표를 처음 실행 한 기록 을 삭제 합 니 다.그렇지 않 으 면 처음 실 행 된 것 을 감지 하면 그 뒤에 표를 만 들 지 않 습 니 다.
(1)이 app 모듈 에 migrations 폴 더 가 있 습 니 다.앞의 두 파일 을 제외 하고 다른 파일 은 모두 삭 제 됩 니 다.사실 매번 변화 가 있 으 면 이쪽 에 파일 이 생 성 됩 니 다.아래 이 001initial.py 는 이름 을 보면 처음 이전 할 때 생 성 된 것 임 을 알 수 있 습 니 다.즉,존재 하기 때문에 나중에 다시 실행 할 때마다 시 계 를 만 들 지 않 습 니 다.

(2)그 다음으로 데이터베이스 에 도 해당 하 는 기록 이 있 고 삭제 해 야 한다.데이터베이스 에 저 장 된 것 이 무엇 인지 자세히 봅 시다.djangomigrations 안에 이 표 안에 저 장 된 것 은 매번 이전 하 는 기록 입 니 다.물론 어떤 모듈 과 해당 하 는 파일 이름 을 기록 합 니까?예 를 들 어 우리 가 있 는 모듈 은 dtheme 이 고 이곳 의 파일 이름 은 001 입 니 다.initial,우리 폴 더 와 일일이 대응 합 니 다.마찬가지 로 이 기록 을 삭제 합 니 다.

그리고 집행python manage.py makemigrationspython manage.py migrate하면 됩 니 다.
주의해 야 할 것 은 이 app 모듈 아래 에 다른 model 이 있다 면 다른 model 이 만 든 표 도 삭제 해 야 합 니 다.우리 와 같은 해결 방안 은 전체 app 모듈 을 대상 으로 하 는 것 입 니 다.실행 하려 면 모두 다시 생 성 됩 니 다.그렇지 않 으 면 일부 표 에 존재 하 는 오 류 를 알 릴 수 있 습 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기