[컴][웹] django 에서 초기 data insert 방법

django 에서 초기 database record 넣기 / how to insert initial database records on django / 장고에서 초기 디비 레코드 insert 넣기 / django init db / django initial db value / django model default values


django 를 통해서 database model 을 만들고 나면, 어느정도 기본 값들을 db 에 넣어줘야 한다. 이런 작업을 위해서 django 에서는 loaddata 를 사용할 수 있는데, 이 loaddata 에 사용할 data 를 저장하는 방법은 dumpdata 이다.

물론 이 dumpdata 를 이용해서 data 를 만들지 않고, 직접 작성해서 사용해도 된다. 일단, 먼저 dumpdata 를 알아보자.


dumpdata

아래처럼 dumpdata 를 하면 stdout 으로 db 의 내용을 가져와서 뿌려준다. 기본 data type 은 JSON 인데 --format 을 통해서 변경할 수 있다.
--output option 은 Django 1.8 부터 지원한다.
dumpdata 뒤에 application 이름을 적어주면 application model 에 있는 정보만 가져온다.
--indent 는 보기좋게 indent 를 넣어주는 것이다.

c:\project>django-admin dumpdata myappname1 --format JSON --output init_data.json --indent 2


loaddata

loaddata 를 아래같은 방식으로 하면 된다.
django-admin loaddata <fixture_name>
여기서 fixture_name 이 위에 저장했던 file 이름(init_data.json)이 된다.
이 init_data.json 을 application 아래 fixtures 라는 이름으로 넣어놓고 아래 명령어를 실행하면 된다.

myprojct
   |
   ---app1
       |
       ----fixtures
              |
              ------ init_data.json
              

$./manage.py loaddata init_data --settings=myproject.settings.production

주의할 점

주의할 점은 이녀석은 처음에만 사용하는 녀석이라는 것이다. 다시 말하면, 이 loaddata 를 실행하면, data 가 전부 없어지고, 이 fixture 의 data 를 넣어놓는다. 그러므로 data 를 새롭게 초기화 할 생각이 아니라면, 사용하지 말자.




Reference

  1. django-admin and manage.py | Django documentation | Django
  2. Providing initial data for models | Django documentation | Django

댓글 없음:

댓글 쓰기