Django
장고 데이터베이스 마이그레이션 파일 정리와 오류 처리
수알치
2021. 11. 26. 12:49
[참고] https://wikidocs.net/9926
장고 데이터베이스 마이그레이션 파일 정리와 오류 처리
정리. 수알치 오상문
배포하기 전에 개발 중인 프로젝트는 중간에 마이그레이션 정보를 정리해주는 것도 좋다.
1. 마이그레이션 정보 파일 삭제:
앱의 migrations 디렉토리에서 __init__.py 파일만 제외한 나머지 파일을 지운다.
2. 데이터베이스 테이블 삭제:
데이터베이스 파일도 정리하고 싶으면 DB 관리자 툴을 이용해서 삭제한다.
(단, 데이터베이스에 저장했던 정보도 삭제된다는 점에 주의하자.)
예를 들어 SQLite를 이용하고 있다면 db.sqlite3 파일을 삭제하면 된다.
3. 마이그레이션 파일 생성 및 데이터베이스에 반영
python manage.py makemigrations
python manage.py migrate
[참고] 리눅스 명령으로 마이그레이션 파일 정리하기
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
[참고] 데이터베이스 테이블이 존재해서 초기 마이그레이션 파일을 적용할 수 없을 때, 마이그레이션 한 것처럼 fake 마이그레이션 하기
python manage.py migrate --fake-initial
[참고] 데이터베이스에서 앱 관련 테이블을 삭제해서 마이그레이션 에러가 발생할 때
python manage.py migrate --fake 앱이름 zero
반응형