마이그레이션이란?
마이그레이션은 모델에 생긴 변화(필드 추가, 모델 삭제 등)를 반영하는 Django의 방식이다. 자동실행되도록 설계되었다.
장고는 ORM을 사용하기 때문에 models.py와 클래스를 통해 DB 스키마를 생성하고 컨트롤 한다. 이 때, DB 스키마를 버전별로 나눠 관리할 수 있게 해주는 시스템이 마이그레이션이다.
스키마 변화를 지원하도록 만들어졌으며 서드파티 백엔드를 포함, Django에 포함된 모든 백엔드에서 마이그레이션이 지원된다.
명령어
마이그레이션을 실행하고 데이터베이스 스키마를 장고가 다루기 위한 다양한 명령어들이 있다.
- migrate은 마이그레이션을 반영하거나 반영하지 않기 위해 사용
1. python manage.py makemigrations [app_name]
마이그레이션 생성 명령어
뒤에 app_name을 입력하면 해당 app에 대해서만 마이그레이션을 생성하고, app_name을 생략하면 전체 app에 대해 마이그레이션을 생성한다.
app_name을 입력하지 않으면 의도하지 않은 마이그레이션이 생성될 수 있으니 가급적 app_name을 같이 입력하는 것을 권장.
단, 프로젝트 생성 후 처음 migrate 작업을 위한 마이그레이션을 생성할 때는 app_name을 생략해야 함
2. python manage.py migrate [app_name] [migration_name]
마이그레이션 적용 명령어
실제 DB에 변경사항을 적용하는 명령어이다. makemigrations와 같이 app_name을 지정해서 특정 app만 migrate 할 수 있으며 app_name 뒤에 마이그레이션 파일의 이름을 지정하면 해당 버전의 마이그레이션을 적용하게 된다. 이전 버전으로 돌리는 것도 가능하다.
'IT > Python' 카테고리의 다른 글
[Python] 파이썬 any(), all() 함수 (0) | 2023.12.05 |
---|---|
[Python] requirements.txt 생성하는 법 (1) | 2023.12.01 |
[Python] 파이썬 Counter (0) | 2023.11.24 |
[Python] 파이썬 aiohttp 라이브러리 (0) | 2023.11.16 |
[Python] 파이썬 map(), map함수 (0) | 2023.11.15 |