약 initial_data
에 대해 할 수있는 일이별로 없습니다. 그러나, 나는 어쨌든 최적의 유틸리티보다 적다고 항상 느꼈습니다. 드물게 syncdb
또는 migrate
을 호출 할 때마다 동일한 조명기를 반복해서 적용하기를 원하십니까? 당신은 몇 가지 다른 이름기구를 사용하는 경우
, 당신은 쉽게 모든 당신이 필요로하는, 그래서 정말
from django.core.management import call_command
call_command("loaddata", "my_fixture.json")
합니다 (South docs에서) 당신의 앞으로의 마이그레이션에 다음을 추가하여 귀하의 마이그레이션을 실행 될 수 있습니다 특정 환경에서만이를 수행 할 수있는 방법입니다. dev의 경우 가장 쉬운 방법은 DEBUG
에 의존하는 것입니다. 그래서, 이전 코드가된다 : 당신이 더 많은 제어가 필요한 경우
from django.conf import settings
from django.core.management import call_command
if settings.DEBUG:
call_command("loaddata", "dev_fixture.json")
, 당신은 다른 것입니다 설정 어떤 종류의 각 local_settings.py
(또는 환경에 따라 설정을 사용자 정의하는 데 사용하는 어떤 방법) 만들 수 있습니다. 예 :
# local_settings.py
ENV = 'staging'
# migration
from django.conf import settings
from django.core.management import call_command
if settings.ENV == 'staging':
call_command("loaddata", "staging_fixture.json")
위대한 답변! 구식 비품을 어떻게 처리합니까? 당신은 마이그레이션과 마찬가지로 취급합니까? 따라서 픽스쳐 로딩이 3 번이고 10 번 마이그레이션이 완료되면 픽스쳐는 오래된 것입니다. 그런 다음 마이그레이션 # 14가 될 새로운 조명기를로드하는 새로운 마이그레이션을 추가합니까? – jawilmont
설비는 본질적으로 순간 형 스냅 샷입니다. 마이그레이션으로 인해 데이터베이스가 변경되면 어쨌든 더 이상 작동하지 않을 가능성이 높습니다. 그래서, 네가 새로운 마이그레이션을 만들고이 마이그레이션을위한 특정 설비를 필요로한다면, DB의 현재 상태를 기반으로 새로운 조명기를 간단하게 만들어야한다고 말할 수 있습니다. –