2011-02-03 16 views
7

Sono nuovo nel mondo di Django. Esecuzione di alcune app di esercitazione e quando si esegue python manage.py test sto riscontrando un errore che dice che la tabella esiste già. Non sono sicuro di cosa sta succedendo. Sto anche correndo verso sud, e non ho avuto errori durante la migrazione dello schema.django - "manage.py test" ha esito negativo "la tabella esiste già"

Qualsiasi intuizione è molto apprezzata.

TIA Joey

+0

possibilmente correlate: http://stackoverflow.com/questions/3090648/django-south-table-already-exists – payne

+0

SI! È stato così, ho commesso degli errori e ho eliminato la sincronizzazione con il db. installazioni pulite lo hanno risolto correttamente. –

risposta

15

Potrebbe essere un errore in uno dei tuoi migrazioni sud. Non si vede il problema sul db reale perché la migrazione è stata eseguita (con l'opzione - falso forse)

Si può provare a ricreare il db da scracth e vedere se funziona.

Puoi anche disattivare South per i test di unità aggiungendo SOUTH_TESTS_MIGRATE = False nel tuo settings.py. Con questa opzione verrà eseguito un normale syncdb per creare il database di test. Inoltre velocizzerà il processo di test.

Spero che aiuta

+0

risposta molto perspicace! –

+0

se devo disegnare db da zero, qual è il vantaggio di South? – Ahsan

+0

@Ashan il DB viene creato da zero solo per i test e succede in questo modo, indipendentemente dal fatto che si utilizzi o meno South. –

0

e se si sta eseguendo il test con il naso:

DST_RUN_SOUTH_MIGRATIONS = False

0

Questo succede anche con il naso quando
--cover-package=userdata,incorrectname
Uno del nome del pacchetto è errato

1

Questo mi è successo anche con un codice legacy ma per un altro motivo.

Avevo due modelli con db_table che fa riferimento alla stessa tabella db. So che è stupido, ma non è colpa mia)

E non ho mai trovato nulla su internet che potesse aiutarmi. Sono stato salvato da verbosity impostato su 3 (manage.py test -v 3) Spero che questo aiuti chiunque.

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

class Bla2(Model): 
    some_column = ... 
    class Meta: 
     db_table = 'some_table' 
Problemi correlati