1. 데이터베이스 시딩(database seeding)이란?
데이터베이스의 초기 데이터를 설정하는 것을 말합니다.
모델에 요소를 추가하는 방법으로 우리는 두 가지 방법을 사용하였습니다.
- 관리자 페이지
- 장고 Shell
그렇지만 아주 많은 데이터를 이러한 방법으로 일일이 저장하기에는 무리가 있습니다. 이럴 때
loaddata
와 dumpdata
명령어를 활용할 수 있습니다.2. dumpdata
dumpdata
명령어는 현재 DB에 있는 데이터를 텍스트 형식의 파일로 저장하는 것을 말합니다. 추후에 이 파일은 loaddata
명령어를 통해 읽어서 원하는 DB에 저장할 수 있습니다.python manage.py dumpdata main --output data.json
main
:main
이라는 앱의 모델들의 데이터를 저장
--output data.json
:data.json
이라는 파일로 저장
명령 수행 결과로 만들어진
data.json
파일은 다음과 같습니다.[{"model": "main.developer", "pk": 1, "fields": {"name": "프론트 엔드"}}, {"model": "main.developer", "pk": 2, "fields": {"name": "백엔드 개발"}}, {"model": "main.developer", "pk": 3, "fields": {"name": "게임 개발"}}, {"model": "main.developer", "pk": 4, "fields": {"name": "데이터 분석과 인공지능"}}, {"model": "main.developer", "pk": 5, "fields": {"name": "정보보안"}}, {"model": "main.question", "pk": 1, "fields": {"number": 1, "content": "당신이 가장 재밌었던 수업은?"}}, {"model": "main.choice", "pk": 1, "fields": {"content": "프론트엔드(HTML, CSS, Javascript, etc)", "question": 1, "developer": 1}}]
하지만 한 줄로 출력되어 알아보기가 쉽지 않습니다. 그럴 때에는
--indent 4
옵션을 추가합니다.python manage.py dumpdata main --output data.json --indent 4
그러면 아래와 같이 알아보기 쉽게 들여쓰기가 되어서 출력됩니다.
[ { "model": "main.developer", "pk": 1, "fields": { "name": "프론트 엔드" } }, { "model": "main.developer", "pk": 2, "fields": { "name": "백엔드 개발" } }, { "model": "main.developer", "pk": 3, "fields": { "name": "게임 개발" } }, { "model": "main.developer", "pk": 4, "fields": { "name": "데이터 분석과 인공지능" } }, { "model": "main.developer", "pk": 5, "fields": { "name": "정보보안" } }, { "model": "main.question", "pk": 1, "fields": { "number": 1, "content": "당신이 가장 재밌었던 수업은?" } }, { "model": "main.choice", "pk": 1, "fields": { "content": "프론트엔드(HTML, CSS, Javascript, etc)", "question": 1, "developer": 1 } } ]
3. loaddata
dumpdata에서 설명했듯이,
loaddata
는 dumpdata
로 생성된 데이터 파일을 읽어서 DB에 저장하는 명령어입니다. loaddata
명령어를 이용해 우리가 미리 준비한 설문 데이터를 DB에 저장해봅시다.프로젝트 폴더에
data.json
파일을 만들고 해당 내용을 모두 복사해서 붙여넣습니다.
이제
loaddata
명령어로 DB에 저장합니다.python manage.py loaddata data.json

사진 처럼 나온다면 저장에 성공한 것입니다.
이제 설문 페이지로 접속하면 저장된 데이터들이 모두 잘 나오는 것을 확인할 수 있습니다.
