장고에서의 Migration
: 모델을 db에 저장하는 것
모델에서의 변경사항이 생겼을 경우 새롭게 migration을 진행해 주어야 한다.
명령어 (SQLite) :
python manage.py makemigrations [app_name]
- app_name에 대해 마이그레이션을 진행
- app_name을 작성하지 않으면 전체 app에 대해 마이그레이션 진행
- 프로젝트 생성 이후 첫 번째 마이그레이션은 app_name을 작성하지 않고 전체 마이그레이션을 해야 함
python manage.py migrate [app_name] [migration_name]
- 모델의 변경사항을 DB에 반영하는 단계
- app_name에 대한 DB를 반영 (생략 가능)
- migration_name : 해당 버전의 마이그레이션을 반영 (생략 가능)
- 이전 버전의 마이그레이션으로도 되돌리기 가능
- 모든 마이그레이션을 되돌리려면 migration_name에 zero를 입력하기
python manage.py migrate [app_name] zero
python manage.py showmigrations [app_name]
- app_name의 마이그레이션 정보를 보여줌 (app_name 생략 가능)
- 마이그레이션이 적용되었는지 보여줌
모델을 추가하거나 변경하는 경우 매번 migration을 해야 하지만,
기존의 데이터와 충돌하여 에러가 발생할 수 있다.
> DB에 저장된 데이터를 모두 날려도 된다면 .sqlite3 파일과 migrations 폴더 내 0001와 같이 숫자로 시작하는 파일들을 모두 제거한 뒤 새롭게 makemigrations부터 진행하면 좋다
> 연습할 때만 데이터 삭제하기,,
참고
'IT (프론트엔드 외)' 카테고리의 다른 글
[SpringBoot] test를 찾지 못하는 에러 발생, Spring boot 3.x 및 Java 17 설치 (0) | 2024.01.26 |
---|