[Django] 배포 중 마이그레이션 오류
장고 하다보면 테이블 삭제하거나 변경될 경우
pyhton manage.py makemigrations
pyhton manage.py migrate
가 안먹힐 때가 있는데 그럴 땐 당황하지말고 이렇게 따라하면 된다.
배포 중에 도커 컨테이너에서 해서 좀 힘들었다...
1. 모든 데이터를 지우며 초기화
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
만약 배포 전이라면 이렇게 데이터를 다 삭제하거나 db.sqlite 를 삭제해버리면 끝!
그리고 다시
python manage.py migrate
하면 손쉽게 된다.
하지만 데이터를 삭제 하지않고 배포 중이라면 .
2. 데이터를 살리고 특정 앱 데이터를 지우기
python manage.py makemigrations
명령어를 친 후 만약 배포 했다면 뒤에
python manage.py makemigrations --settings=myproject.settings.deploy
처럼 배포 환경에서 실행 해주어야 한다.
처음에 이것 조차 몰라서 구글링 해봤더니.
당연한듯 배포환경에서 실행을 해야된다.
python manage.py migrate --fake 앱이름 zero
특정 앱의 이름을 넣어서 초기화 한다.
그리고
> cd 내 앱
> find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
> find . -path "*/migrations/*.pyc" -delete
그 앱으로 들어가서 다 지운다!
init.py 파일 만 빼고
그리고 다시
python manage.py makemigrations
이렇게 만들어주고
python manage.py migrate --fake-initial
Author And Source
이 문제에 관하여([Django] 배포 중 마이그레이션 오류), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@zerowater/Django-배포-중-마이그레이션-오류저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)