Django Migration

·2022년 6월 21일
0
post-thumbnail

Django Migration의 목적

  • Django Model에 정의된 field, option, meta정보를 데이터베이스 테이블의 schema와 동기화하고, model의 변경사항을 버전으로 관리

Django Migration Workflow

  • makemigrations

    • 모델과 해당 DB table의 schema를 동기화하기 위한 (변경내역) 데이터 생성
    • DB table의 schema 버전은 DB의 migration table이 가르키고 있는 migrations file 버전을 통해 알 수 있다.
    • 새로운 마이그레이션 파일은 dependency가 있는 migration 파일, table에 적용되어야 할 수정사항을 포함한다.
    • postfix로 app_name을 추가하면 특정 app의 model에 대해서만 migration 파일을 생성할 수 있다.
  • migrate

    • 생성한 migration파일을 통해 sql 명령을 생성하고, DB에 대해 명령을 수행한다.
      • 생성되는 sql 명령은 sqlmigrate를 통해 확인할 수 있다.
    • migrate할 app_name, migration 파일을 지정할 수 있다.
      • 최신 버전의 migration뿐만 아니라, 이전의 migration 버전으로 rollback도 가능하다.
  • showmigrations

    • 각 app에 대해 migration 파일 적용 상황을 확인할 수 있다.
profile
Ben

0개의 댓글