Django migration 취소 제거 방법
그냥 migrations 폴더에서 스크립트 파일들을 막 지우면 문제가 생긴다. 다음 순서대로 차분하게 정리해 보자.
참고로 장고에서 migration 이란?
from https://tibetsandfox.tistory.com/24
> DB 스키마를 git처럼 버전으로 나눠서 관리 할 수 있게 해 주는 시스템
Show me the migrations
먼저 migrations history 를 보자
python manage.py showmigrations
그럼 다음 화면처럼 지금까지 한 역사가 나타난다.
앱이름과 적용한 migrations 내용이 나타난다.
특정 위치로 돌아가기
여기서 돌아가고 싶은 곳으로 취소하고 싶다면, (이미 적용된 것을 취소하고 싶다면) 아래 커맨드를 참고한다. 즉, testapp의 0001번으로 돌아가고 싶다면,
python manage.py migrate testapp 0001
아예 0001 까지 없애고 싶다면, 돌아갈 곳이 없는데 어떻게 하느냐?
python manage.py migrate testapp zeroORpython manage.py migrate --fake testapp zero
삭제하기
migrations 폴더로 가서 원하는 파일을 순서대로 지우면 된다. 의존성이 있으니깐 뒤에서 원하는 지점까지는 전부 지워서 없애는게 나을 듯,
from https://tibetsandfox.tistory.com/24
이 때 0002 마이그레이션 파일을 삭제하고 싶다면,
1. python manage.py migrate app_name 0001 명령어로 이전 버전으로 적용시킨후 삭제
2. python manage.py migrate app_name zero 명령어로 마이그레이션을 초기화 시킨 수 삭제
둘 중 하나의 절차를 거친 후 삭제하서야 합니다.
초기화
DB에는 스키마가 남아 있으니 혹시 재 초기화 하고 싶다면 fake-initial 을 …
python manage.py migrate --fake-initial
관련된 내용은 여기 참고 (https://velog.io/@kho5420/Django-Django-마이그레이션-초기화)
참고 페이지
훨씬 자세한 내용 😁 못이겨 못이겨
- 좀 방대하지만 교과서 같은 사이트
- 딱 필요한 것만 요점 정리
- migrations 에 대한 전반적인 내용