2012-06-04 2 views
0

django (v1.1) 프로젝트를 mysql에서 postgresql (재미 있습니다!)로 이동하는 중입니다. 현재 모든 데이터를 전송 중입니다. manage.py dumpdata 옵션을 사용하려고 시도했지만 사용중인 서버가 오래되어 정말로 오랜 시간이 걸릴 것입니다 (모든 것을 메모리에로드하려고합니다). 나는 각 응용 프로그램 다음 그 아래에 각 모델을 처리하는 작은 스크립트를 내놓았다, 단순화 된 버전은 다음과 같습니다Django : DoesNotExist : 일치하는 쿼리가 없습니다.

def dumpJson(model, outfile): 
    try: 
      data = serializers.serialize("json", model.objects.all(),indent=4)     
    except model.DoesNotExist: 
      print model.__name__ , "Does not Exist (not Object)" 
    except ObjectDoesNotExist: 
      print model.__name__ , "Issue with the data, not sure what...." 

      data = serializers.serialize("json", model.objects.all(),indent=4) 
      data = data.decode("unicode_escape").encode("utf8") 
      out = open(outfile, "w") 
      out.write(data) 
      out.close()   

def main(): 
    for app in get_apps():    
      for model in get_models(app): 
        print " -- Dumping:", model.__name__ 
        outfile = "json_dumps/" + model.__name__ + ".json"       
        dumpJson(model, outfile) 

그러나, 나는이 시도 캐치 문을 제거하면, 나는 다음과 같은 오류가 발생합니다 :

\
-- Dumping: Institution 
    Traceback (most recent call last): 
    ...(nasty stacktrace)....  
    unity.trip.models.DoesNotExist: USNWRData matching query does not exist. 

내 모델과 같이 정의된다 : 나는 그것을 알고있는 것처럼

class USNWRData(models.Model): 
    rank = models.PositiveIntegerField(blank=True, null=False) 
    name = models.CharField(max_length=255, blank=True, null=False) 
    state = models.CharField(max_length=10, blank=True, null=False) 
    public = models.BooleanField(blank=True, null=False) 
    type = models.ForeignKey(USNWRType) 

class Institution(models.Model): 
    name = models.CharField(max_length=200) 
    parent_institution = models.ForeignKey('self', blank=True, null=True) 
    location = models.ForeignKey(Location, blank=True, null=True,related_name='old_location') 
    type = models.ForeignKey(InstitutionType, blank=True, null=False) 
    usnwr = models.ForeignKey(USNWRData, blank=True, null=True) 
    locationnrm = models.ForeignKey(LocationNrm, blank=False, null=True) 

이 오류의 원인은 데이터 불일치 또는 외래 키 누락의 어떤 종류에서입니다. 위의 모델을 감안할 때 문제가되는 것은 무엇입니까? 나는 그것으로 약간의 문제가 있고 원저자는 오래 전에 사라져 버렸다. 어떤 도움을 많이 주시면 감사하겠습니다!

편집 : 전체 스택 거래는 : 나는 다른 작은 데이터 세트 이상의 목적 (예를 들어, 푸 OptionList 항목의 100 개 기록) 또는 시험 설비에 대한 장고 비품 정말 쓸모없는 것으로 나타났습니다

-- Dumping: Institution 
Traceback (most recent call last): 
File "custom_dump.py", line 38, in <module> 
    main() 
File "custom_dump.py", line 34, in main 
    dumpJson(model, outfile) 
File "custom_dump.py", line 16, in dumpJson 
    data = serializers.serialize("json", model.objects.all(),indent=4) 
File "/usr/local/lib64/python2.5/site-packages/django/core/serializers/__init__.py", line 91, in serialize 
    s.serialize(queryset, **options) 
File "/usr/local/lib64/python2.5/site-packages/django/core/serializers/base.py", line 48, in serialize 
    self.handle_fk_field(obj, field) 
File "/usr/local/lib64/python2.5/site-packages/django/core/serializers/python.py", line 48, in handle_fk_field 
    related = getattr(obj, field.name) 
File "/usr/local/lib64/python2.5/site-packages/django/db/models/fields/related.py", line 315, in __get__ 
    rel_obj = QuerySet(self.field.rel.to).using(db).get(**params) 
File "/usr/local/lib64/python2.5/site-packages/django/db/models/query.py", line 349, in get % self.model._meta.object_name) 
unity.trip.models.DoesNotExist: USNWRData matching query does not exist. 
+0

당신이 스택 추적을 포함 할 수 있습니다 :

또한 이것 좀 걸릴 수 있습니다? – Elliott

+0

내 편집에 추가했습니다. –

답변

관련 문제