일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 가상환경
- 알고리즘
- 아스키코드
- 정렬알고리즘
- BeautifulSoup
- pipenv
- 노마드코더
- 속초여행
- 부스트코스
- richtext
- Django
- python3
- DOM
- c언어문자열
- 상속
- 강원도속초맛집
- FLUTTER
- 코딩독학
- 남양주맛집
- removetooltip
- 건대입구맛집
- 자바
- 포인터
- JavaScript
- 컴퓨터과학
- 성수동카페
- 추상클래스
- popupmenubutton
- 장고
- Python
- Today
- Total
YUYANE
Django / migrations을 하는 이유 본문
학습 강의
nomadcoders.co/airbnb-clone/lectures/868
지난 번 models.py 포스팅(1y9u9j2in.tistory.com/178)에서 데이터에 변형이 있을 경우에 migration 작업을 해줘야 한다고 잠깐 언급했었다. 오늘은 장고 migration에 대해 배워보자!
모델에서 데이터에 변화가 생겼는데(필드의 생성/수정/삭제 등), migration 작업을 하지 않은 채 서버를 동작하면 위와 같은 오류가 발생한다. 데이터베이스에서 변화된 데이터의 모형이 동기화되지 않았기 때문이다.
장고와 SQL
장고는 데이터베이스로 SQL을 사용한다. 그런데, SQL은 데이터에 변화가 일어나도 스스로 알아차리지 못한다.
그래서 장고가 migrations 작업을 통해 모델에서 일어난 데이터의 변화를 데이터 베이스인 SQL에게 전달하는 것이다.
SQL 언어를 사용하지 않아도 장고가 중간 매개자 역할을 함으로써 데이터 동기화를 해준다는 점이 장고의 큰 장점이기도 하다!
migration 방법
$ python manage.py makemigrations
위의 구문을 실행하면, 수정 된 models이 스캔/비교되어 기존의 migrations 파일에 새롭게 생성 된 migrations set이 작성된다. (만약에 migrations에 특정한 명칭을 부여하고 싶다면, 'makemigrations --name'을 사용하면 된다.)
$ python manage.py migrate
새로운 migrations 파일이 생성된 후, 데이터베이스에 생성된 migrations 파일을 적용시키면 완성! 아래와 같이 데이터베이스가 업데이트 된 데이터 정보를 sql 언어로 갖게 된다. (처음으로 하는 migration이라면 db.sqlite3 파일이 새롭게 생성될 것이다.)
참고
'Framework > DJANGO' 카테고리의 다른 글
Django / ForeignKey 와 ManyToManyField (0) | 2021.02.23 |
---|---|
Django / Model Field (0) | 2021.02.23 |
Django / models.py (0) | 2021.02.19 |
Django / pipenv로 가상환경 구축하기(Ubuntu, python3) (0) | 2021.02.15 |
Django / WSL(ubuntu)로 pip, pipenv 설치하기 (python3) (0) | 2021.02.15 |