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

 

반응형