Back-end/Django
Fixtures - dumpdata, loaddata
지나온
2022. 10. 12. 21:45
Fixtures
Django가 데이터베이스로 가져오는 방법을 알고 있는 데이터 모음
Fixtures를 사용해 모델에 초기데이터를 추가한다.
migrations, fixtures를 사용해 데이터와 구조를 공유한다.
- 생성 : dumpdata
- 로드 : loaddata
dumpdata
python manage.py dumpdata articles.article > articles.json
정보가 담긴 데이터가 json파일로 생성된다.
python manage.py dumpdata --indent 4 articles.article > articles.json
--indent 4를 추가하면 json구조가 정리되어 확인할 수 있다.
articles에 fixtures 폴더를 만들어서 json파일을 넣어주는 구조로 한다.
loaddata
python manage.py makemigrations
db가 없는 상태를 받았을 때, 먼저 migrate한다.
테이블이 있어야 데이터를 넣을 수 있다.
python manage.py loaddata articles/article.json
경로, 파일명 를 작성하여 loaddata한다.
python manage.py loaddata article.json comments.json users.json
한번에 load할 수 있다. 한번에 load할 때 파일 순서는 관계없다.
한번에 할때는 모델 관계, 순서가 관계없지만 하나씩 load할 경우에는 순서가 중요하다.
article에는 like_users필드가 있기 때문에 users가 먼저 필요하다.
외래키가 없는 user먼저 load해야 한다. -> article -> article을 외래키로 쓰는 comment 순으로 load 할 수 있다.