Meme's IT

[Django] Fixtures 본문

BackEnd/Django

[Django] Fixtures

Memez 2023. 10. 17. 11:03

# Fixtures?

= 초기 데이터

데이터베이스가 아닌, 데이터베이스에 들어가 있는 데이터 모음 

이걸로 공유하고, 이걸 받아와서 바로 DB데이터를 채울 수 있음

 

 

 

# dumpdata

기본 코드

$ python manage.py dumpdata [app_name[.Modelname] [app_name[.Modelname] ... ]] > filename.json

 

articles 추출해보기

$ python manage.py dumpdata --indent 4 articles.article > articles.json

--indent 4 == 보기 쉽게 들여쓰기 4칸으로 해라

 

 

다음과 같은 결과 값 얻을 수 있음

# articles.json

[
{
    "model": "articles.article",
    "pk": 1,
    "fields": {
        "user": 1,
        "title": "1qjs",
        "content": "������",
        "created_at": "2023-10-17T01:12:38.788Z",
        "updated_at": "2023-10-17T01:12:38.788Z",
        "like_users": []
    }
},
{
    "model": "articles.article",
    "pk": 2,
    "fields": {
        "user": 1,
        "title": "2����",
        "content": "����",
        "created_at": "2023-10-17T01:12:49.532Z",
        "updated_at": "2023-10-17T01:12:49.532Z",
        "like_users": []
    }
}
]

 

 

# Loaddata

fixtures 데이터를 데이터베이스로 불러오기

 

Fixtures 파일의 기본 경로 = app_name/fixtures/

+ fixture 파일 위치 옮겨오기 → articles/fixtures/               

database지우고

migrate

database한번 더 지우고

$ python manage.py loaddata articles.json comments.json users.json

해도 오류가 남

1. dumpdata시 추가 옵션 작성

$ python -Xutf8 manage.py dumpdata [생략]

 2. 메모장 활용

  1. 메모장으로 json 파일 열기
  2. 다른이름으로 저장
  3. 인코딩을 UTF8로 선택 후 저장

 

근데, 하는 순서도 중요

그래서 그냥 모든 모델을 하나의 json 파일로 해주자

$ python manage.py dumpdata --indent 4 > data.json

 

[뒤에 추가파트 더 듣기]

'BackEnd > Django' 카테고리의 다른 글

[Django] 댓글 구현(N : 1)  (0) 2023.10.17
[Django] Query  (0) 2023.10.17
[Django] N:M 팔로우 기능 구현  (0) 2023.10.17
[Django] N:M 프로필 만들기  (0) 2023.10.17
[Django] 웹 크롤링(Web Crawling)  (0) 2023.10.13