당신의 친절한 이웃, 코딩맨

# 35 Django - dumpdata, loaddata 사용 / 협업시 필요한 초기 셋팅 본문

Today I Learn (TIL)

# 35 Django - dumpdata, loaddata 사용 / 협업시 필요한 초기 셋팅

이웃집 친구 2020. 8. 23. 13:46
반응형

dumpdata와 loaddata 사용방법에 쓰기 앞서, 장고로 협업할 때 필요한 내용들을 먼저 정리한다.

 

가상 환경을 venv로 하거나 miniconda, anaconda 등으로 할 때 라이브러리나 pip list로 보이는 정보들을 공유하기 위한 명령문들.

 

pip freeze > requirements.txt

 

*  pip freeze를 하면 pip list와 비슷하지만 나열 순서가 알파벳 순으로 리스팅된다.

 

그리고 requirements.txt에 내가 초기에 설치한 프레임워크, 라이브러리들이 덮여 쓰이게 된다. 

이후에 변경사항이 생겨도 다시 저 명령문을 입력하면 덮였으이기 때문에 새로 만들어질 것을 걱정하지 않아도 된다.

 

.gitignore는 정말 자주 까먹는다. 매번 그렇게 안해서 git rm -rf --cached 이런걸 사용하긴 하는데, 가급적 .gitignore를 까먹는걸 방지하는게 제일 좋아보인다.

 

 


Dumpdata

dumpdata들은 데이터베이스 정보들을 json형태로 저장할 수 있게끔 만들어준다. 이렇게 변환시켜 놓으면 다른 팀원이 내 데이터베이스를 받을 수 있다. 그리고 loaddata로 dumpdata의 데이터들을 불러올 수 있다.

python manage.py dumpdata 앱이름.모델이름 > 앱이름.json

이런 식의 기본 형태로 입력하면 된다. 아래는 예제이다.

python manage.py dumpdata articles.Aricle --indent 4 > articles.json

#Admin
python manage.py dumpdata auth.User --indent 4 > users.json

'--indent 4' 이 부분은 옵션 값이다. 저렇게 옵션을 넣어서 변환하면, 제이슨이 보기 좋게 나오기 때문에 해주는 게 매우 좋다.(옵션을 안 넣으면 한 줄로 나온다)

 

이렇게 만든 후에, 쓰인. json파일들을 django로 생성산 app 경로 안에 'fixtures'라고 폴더를 만들고, (fixtures안에 앱 이름의 폴더를 또 만들어도 된다.) json파일들을 옮기면 끝.

 

 

 

Loaddata

python manage.py loaddata fixtures_path

ex) python manage.py loaddata articles/articles.json

python manage.py loaddata articles/articles.json articles/users.json

fixtures 경로 안에 articles이라는 앱 이름을 가진 폴더를 하나 더 만들어 놓은 상태에서 articles.json을 로드하는 예시이다.

또한 3번째 줄처럼 articles.json과 users.json을 동시에 로드할 수 도있다. (장고 짱짱맨)

Comments