Django에서 기본적으로 학습해야할 내용을 배워봤다. 여태 배운 것들로 다른 기능들을 구현할 수 있을까 하는 의심이 들지만 DB에 대한 이해와 최초 탄탄한 설계와 공식문서를 적절히 활용한다면 충분히 할 수 있을 것이다. Fixtures와 쿼리 개선에 대해서 배워보자.
Django가 데이터베이스로 가져오는 방법을 알고 있는 데이터 모음
데이터베이스 구조에 맞추어 작성 되어있음
초기 데이터 제공을 위해 사용됨
협업하는 유저 A, B가 있다고 가정하자.
1. A가 먼저 작업 후 git push를 함
-> 이때, gitignore로 인해 DB가 업로드 되지 않아 A가 생성한 데이터는 가지 않음
2. B가 pull or clone 받음
-> DB가 없는 프로젝트를 받음
이처럼 Django 프로젝트의 앱을 처음 설정할 때 동일하게 준비된 데이터로 DB를 미리 채우는 것이 필요한 순간이 있음 이를 fixtures를 활용하여 초기 데이터를 제공할 수 있다.
DB의 모든 데이터를 추출하여 json 형식으로 저장
$ python manage.py dumpdata [app_name[.ModelName] [app_name[.ModelName] ...]] > filename.json
<참고> 모든 모델을 한 번에 dump하기
<참고> Fixtures 파일을 직접 만들지 말것 -> 반드시 dumpdata 명령어를 사용하여 생성
Fixtures 데이터를 DB로 불러오기
<참고> Fixtures 파일 기본 경로
app_name/fixtures/
<참고> loaddata시 encoding codec 관련 에러가 발생하는 경우 - 2가지 방법
1. dumpdata시 추가 옵션 작성
$ python -Xutf8 manage.py dumpdata []