[TIP] ❗️django fake migrate

finelinefe·2021년 3월 1일
1

TIP

목록 보기
16/19

Problem

기존 모델에 새로운 테이블을 추가하기 위해 models.py 에 새롭게 작성 -> makemigrations -> migrate -> 테이블 생성이 안되는 문제


How to Solve

(1) 기존에 추가했던 내용 주석처리
(2) 기존 모델 대상 makemigraions
(3) 기존 모델 대상 migrate --fake
(4) 기존에 추가했던 내용 주석해제
(5) 새로운 내용 모델 대상 makemigrations
(6) 새로운 내용 모델 대상 migrate


Failure Cause

기존에 존재하는 모델에 마이그레이션을 시도해서 안 된 것 같다(30)
내가 이해하기로는, 새로 추가된 내용을 바로 넣는다고 생각하지 말고

1) 모든 앱의 migrations 폴더에서 init 파일을 제외한 기록을 다 지우고
2) 추가 내용 이전으로 다시 마이그레이트를 실행(makemigrations)하되 python manage.py migrate --fake 옵션을 사용하여 적용해야 한다
3) 그렇게 된다면 새로운 모델 내용 추가 이전의 마이그레이트가 된 상태이다(원상복구)
4) 그 이후 추가 내용을 주석해제 하거나 새로 입력 한 뒤 makemigrations -> python manage.py migrate 하면 새로 추가된 테이블까지 모두 생성된다


0개의 댓글