2010-11-14 7 views
5

Sto usando django 1.2 e ho dovuto installare un secondo database sul mio progetto . Non appena avrò configurato la seconda connessione e il router sul mio progetto , tutti i miei casi di test che non si riferiscono nemmeno al secondo database iniziano a fallire. L'esecuzione dell'applicazione funziona correttamente, syncdb funziona correttamente, è solo il test (test dell'unità) con cui ho problemi .Sono supportati più database dal framework di test di django?

Mi sembra che il secondo database non venga mai creato, e anche se lo creo manualmente come (test_mydbname) mantiene in errore.

È supportato?

+0

http://docs.djangoproject.com/en/dev/topics/testing/?from=olddocs#testing-master-slave-configurations http://docs.djangoproject.com/en/dev/topics/testing /? from = olddocs # multi-database-support – Thomas

risposta

1

Ho dovuto aggiungere un DefaultRouter, quindi i miei test hanno iniziato a funzionare di nuovo. Sembra nello scenario di test, django non sa di un database "predefinito". Tutte le informazioni, tra cui ordine di creazione di test db: https://docs.djangoproject.com/en/dev/topics/testing/advanced/#tests-and-multiple-databases

questo è il mio router di default (Django 1.7, non così sicuro circa allow_relation e allow_migrate, anche se

class DefaultRouter(object): 
    """ 
    A router for the default db. add last in settings 
    """ 

    db_label = 'default' 

    def db_for_read(self, model, **hints): 
     return self.db_label 

    def db_for_write(self, model, **hints): 
     return self.db_label 

    def allow_relation(self, obj1, obj2, **hints): 
     return True 

    def allow_migrate(self, db, app_label, model=None, **hints): 
     return True 

e in settings.py:

DATABASE_ROUTERS = ['otherapp.dbrouter.CustomDbRouter', 'project.dbrouter.DefaultRouter'] 
Problemi correlati