Computer Programming/AI

TIL_Django Basics, Migration

JYCoder 2023. 9. 25. 19:45

Django에서 model.py을 정의하면 이 내용을 Database에 적용시키는 과정에 Migration이 쓰인다.

DB Schema를 생성하고 관리할 때, 마치 git처럼 버전을 나눠서 관리할 수 있게 해주는 시스템이다.

(Schema: DB 내에서 data가 저장되는 구조와 제약 조건을 정의한 것. Django에서는 하나의 application의 models.py)

 

Migration 관련 명령어 정리

1. python manage.py makemigrations <app_name>

  • Migration을 생성
  • <app_name>을 입력하면 해당 app에 대해서만 migration 생성, 생략하면 전체에 대해 migration 생성
  • 처음 migration 실행시에는 <app_name> 생략

2. python manage.py migrate <app_name> <migration_name>

  • Migration을 DB에 적용
  • <app_name>을 넣으면 해당 app만 migrate
  • <migration_name>을 넣으면 해당 버전의 파일만 migrate
  • 이를 이용하면 이전 버전으로 되돌리는 것도 가능

3. python manage.py showmigrations <app_name>

  • project의 migration 적용 여부를 한 눈에 보여줌
  • '[X]' 표시가 migration이 적용된 것을 의미함

4. python manage.py sqlmigrate <app_name> <migration_name>

  • 해당 파일이 어떤 SQL 구문으로 실행되는지 알 수 있음
  • 보통 debugging 때 확인용으로 사용

 

LIST