2011-02-03 2 views
7

저는 장고 세계에 처음 왔습니다. 일부 자습서 응용 프로그램을 실행하고 python manage.py test를 실행하면 테이블이 이미 존재한다는 오류가 발생합니다. 무슨 일이 일어나고 있는지 잘 모르겠습니다. 나는 또한 남쪽을 달리고 있는데 스키마를 이주 할 때 아무런 오류가 없다.django - "manage.py test"가 실패했습니다 "table already exists"

어떤 통찰력이라도 대단히 감사합니다.

TIA 조이

+0

아마도 : http://stackoverflow.com/questions/3090648/django-south-table-already-exists – payne

+0

예! 그게 다야, 몇 가지 실수를 저질렀고 db와의 동기화가 원활하지 못했다. 깨끗한 설치가 바로 그것을 수정. –

답변

15

그것은 당신의 남쪽 마이그레이션 중 하나에 오류가있을 수 있습니다. 마이그레이션이 실행 되었기 때문에 실제 데이터베이스에서 문제가 보이지 않습니다 (-fake 옵션 사용)

scracth에서 db를 다시 만들고 작동하는지 확인할 수 있습니다.

units.py에을 추가하여 settings.py에 South를 사용하지 않도록 설정할 수도 있습니다. 이 옵션을 사용하면 테스트 데이터베이스를 만들기 위해 일반적인 syncdb가 수행됩니다. 또한 테스트 프로세스의 속도도 빨라집니다. 당신이 코 테스트하는 경우

가 나는

+0

매우 통찰력있는 답변! –

+0

만약 내가 처음부터 db를 그려야 만한다면 South의 이점은 무엇입니까? – Ahsan

+0

@Ahsan DB는 테스트를 위해서만 처음부터 만들어지며, 남쪽을 사용하든 사용하지 않든 이런 식으로 발생합니다. –

0

도움이되기를 바랍니다과 :

DST_RUN_SOUTH_MIGRATIONS = 거짓

0

패키지의 이름
--cover-package=userdata,incorrectname
하나가 잘못된 경우는 코와도 발생

1

또 다른 이유로 인해 기존 코드가 나에게도 발생했습니다.

동일한 db 테이블을 참조하는 db_table이있는 두 개의 모델이 있습니다. 그게 어리석은 건 알지만 내 잘못이 아니야.)

그리고 나는 인터넷에서 나를 도울 수있는 것을 찾지 못했습니다. 자세한 정보로 저장되었습니다 (manage.py test -v 3) 희망 사항은 누구에게나 도움이되기를 바랍니다.

class Bla1(Model): 
    some_column = ... 
    class Meta: 
     db_table = 'some_table' 

class Bla2(Model): 
    some_column = ... 
    class Meta: 
     db_table = 'some_table' 
관련 문제