장고 하다보면 테이블 삭제하거나 변경될 경우
pyhton manage.py makemigrations
pyhton manage.py migrate
가 안먹힐 때가 있는데 그럴 땐 당황하지말고 이렇게 따라하면 된다.
배포 중에 도커 컨테이너에서 해서 좀 힘들었다...
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
만약 배포 전이라면 이렇게 데이터를 다 삭제하거나 db.sqlite 를 삭제해버리면 끝!
그리고 다시
python manage.py migrate
하면 손쉽게 된다.
하지만 데이터를 삭제 하지않고 배포 중이라면 .
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
감사합니다.