Applicando DATABASE_OPTIONS quando test progetto Django (o fare in modo da utilizzare InnoDB per MySQL)

StackOverflow https://stackoverflow.com/questions/1066990

Domanda

Come dice il titolo, voglio applicare le impostazioni DATABASE_OPTIONS quando eseguo il mio test tramite ./manage.py test. In django/db/backends/creation.py, non considera questa opzione a tutti in entrambe create_test_db() e _create_test_db().

Questo rompe un test con una vista che utilizza transaction.rollback funzione con InnoDB. Sembra che i database di test non sono stati creati con il motore di storage InnoDB.

C'è qualche soluzione o correzione a questo problema?

È stato utile?

Soluzione 2

Ho trovato la ragione da sola. Devo usare TransactionTestCase invece di normale classe base TestCase. , consultare la documentazione.

Altri suggerimenti

Una soluzione potrebbe essere quella di impostare il motore di memorizzazione predefinito sul server per InnoDB.

in my.cnf:

set default_storage_engine=InnoDB

Che dovrebbe funzionare a meno che Django è in ripresa esplicitamente MyISAM.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top