[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

좋은 웹페이지 즐겨찾기