Tags
- 백트래킹
- delete
- ORM
- 이진트리
- DB
- Article & User
- 그리디
- 완전검색
- regexp
- M:N
- 스택
- distinct
- 뷰
- migrations
- 트리
- Vue
- outer join
- Django
- SQL
- N:1
- create
- 쟝고
- Tree
- Queue
- drf
- stack
- 통계학
- count
- 큐
- update
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
Django에 대하여(10)_Migrations 본문
1. Migrations
Migrations란, model 클래스의 변경사항(필드 생성, 수정, 삭제 등)을 DB에 최종 반영하는 방법입니다.
1.1 Migrations 핵심 명령어 2가지
- model class를 기반으로 최종 설계도(migration) 작성
python manage.py makemigrations
- 최종 설계도를 DB에 전달하여 반영
python manage.py migrate
1.2 migrate 후 DB 내에 생성된 테이블 확인
2. 추가 Migrations
아래 그림과 같이 이미 생성된 테이블에 필드를 추가하고 싶을 땐 어떻게 해야 할까요?
2-1 추가 모델 필드 작성하기
# articles/models.py
class Article(models.Model):
title = models.CharField(max_length=10)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
2-2 추가 필드의 기본 값 설정하기
python manage.py makemigrations
- 이미 기존 테이블이 존재하기 때문에 필드를 추가할 때 필드의 기본 값 설정이 필요
- 1번은 현재 대화를 유지하면서 직접 기본 값을 입력하는 방법
- 2번은 현재 대화에서 나간 후 models.py에 기본 값 관련 설정을 하는 방법
2-3 추가 필드의 기본 값 입력하기
- 추가하는 필드의 기본 값을 입력해야 한다.
- 추가하려는 데이터가 날짜 데이터이기 때문에 직접 입력하기 보다 Django가 제안하는 기본 값을 사용하는 것을 권장
- 아무것도 입력하지 않고 enter를 누르면 Django가 제안하는 기본 값으로 설정된다.
2-4 migration 파일 생성 확인
- migrations 과정 종료 후 2번째 migration 파일이 생성됨을 확인
- 이처럼 Django는 설계도를 쌓아가면서 추후 문제가 생겼을 시 복구하거나 되돌릴 수 있도록 함 ('git commit'과 비슷)
2-5 migrate 후 테이블 필드 변화 확인
python manage.py migrate
요약
model class에 변경사항 (1. model class 변경)이 생겼다면, 반드시 새로운 설계도를 생성(2. makemigrations)하고, 이를 DB에 반영 (3. migrate) 해야 한다.
'백엔드' 카테고리의 다른 글
Django에 대하여(12)_ORM과 QuerySet API (0) | 2024.04.02 |
---|---|
Django에 대하여(11)_모델 필드와 Admin site (0) | 2024.04.01 |
Django에 대하여(9)_Model (0) | 2024.03.30 |
Django에 대하여(8)_App과 URL (0) | 2024.03.29 |
Django에 대하여(7)_Django URLs (0) | 2024.03.28 |