2013-07-16 6 views
2

제목이 명확하지 않습니다.
단위 테스트를 통해 응용 프로그램을 테스트하고 싶기 때문에 약간의 테스트를 실행하고 싶습니다. 나는 python manage.py test를 시작하지만, DB에 오류가 있었다 :Django 테스트에서는 db를 초기화 할 수 없지만

The error was: ERREUR: the relation « me_auth_emailuser » doesn't exists 

Error in migration: authtoken:0001_initial 
DatabaseError: ERREUR: the relation « me_auth_emailuser » doesn't exists 

(프랑스어 번역)이 표는 남쪽을 사용하여 마이그레이션 된
은. 내 응용 프로그램의 경우, 난 그냥 사용

python manage.py syncdb 
python manage.py migrate me_auth 
python manage.py migrate 

내가 무슨 일이 일어나고 있는지 이해가 안 돼요,이 명령으로 내가 어떤 오류가 발생하지 않기 때문에 ... 누군가가 나를 도와 드릴까요? :)

답변

2

아마 어느 시점에서 당신은 더 이상 가지고 있지 않은 관계 me_auth_email_user을 가졌을 것입니다.

python manage.py syncdb 
python manage.py migrate 

이 두 가지 해결책이 있습니다 : 나는 당신이 새로운 데이터베이스를 생성하고 실행한다면 당신은 같은 오류를 얻을 것이라고 상상

    단위 테스트에서 남쪽을 사용하지 마십시오
  1. (테스트 중이면 아래의 INSTALLED_APPS에서 제거하거나 settings.pySOUTH_TESTS_MIGRATE = False을 설정하면됩니다).
  2. 수동으로 깨진 마이그레이션을 수정하십시오. 일반 INSTALLED_APPS 설정입니다

시험 중에 한국을 제거하기위한 빠르고 해키 방법은 당신의 settings.py에서 이런 일을하는 것입니다, 아래 : 일반적으로

import sys 

if 'test' in sys.argv: 
    INSTALLED_APPS = [app for app in INSTALLED_APPS if app != 'south'] 

, 마이그레이션을 테스트하는 것은 좋은 일입니다 - 항상 새로운 데이터베이스를 생성하고 migrate을 실행할 수 있어야합니다. 따라서 옵션 (2)을 고려할 것을 강력히 권합니다.

관련 문제