2011-02-10 19 views
5

mam przeżywa ten sam problem jak z: django - "manage.py test" fails "table already exists"Południowa Django tabela już istnieje

schemamigration/migracja działało w porządku (choć miał pewne problemy, które wymagały mi --fake, ale wszystkie kolejne migracje z pracy południowo). Ale kiedy przeprowadzam test jednostkowy, otrzymuję:

(1050, "Table '{tablename}' already exists") 

Jestem ciekawy jak mogę to obejść i dlaczego tak się dzieje. Jedyną odpowiedzią na powyższe pytanie było to, że południe może zostać wyłączone z testów jednostkowych, jeśli to zrobię, to znaczy, że nie mogę testować jednostkowo przy stołach zarządzanych przez południe?

Wyjaśnienia znacznie ceniona :)

Adam

Odpowiedz

8

Nie, to nie znaczy, że. Nie zapominaj, że Django już wie, jak powinny wyglądać twoje tabele, jeśli utworzysz je od podstaw teraz - to po prostu używa definicji modelu. Południe jest użyteczne, ponieważ pozwala na łatwe przekształcenie struktury tabeli podczas zmiany modeli, ale kiedy pracujesz na testach, nie przejmuje się tym: chcesz, aby testy były wykonywane na bieżących wersjach tabel.

Tak, wyłącz opcję Południe podczas testów, przez SOUTH_TESTS_MIGRATE = False, a Django automatycznie utworzy dla Ciebie tabele.

+0

Pozdrawiam inną koncepcję Django (ruszam się z php), którą wyczyściłeś w moim oszalałym mózgu – null

Powiązane problemy