Anwenden von DATABASE_OPTIONS beim Testen Django-Projekt (oder machen es verwenden InnoDB für MySQL)

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

Frage

Wie der Titel schon sagt, ich will DATABASE_OPTIONS Einstellungen zu übernehmen, wenn ich meine Tests über ./manage.py test laufen. In django/db/backends/creation.py, hält sie diese Option nicht gar in beiden create_test_db() und _create_test_db().

Dies bricht einen Test mit einer Ansicht, die transaction.rollback Funktion mit InnoDB verwendet. Es scheint, dass Test-Datenbanken nicht mit InnoDB erstellt.

Gibt es eine Abhilfe oder Update für dieses Problem?

War es hilfreich?

Lösung 2

Ich habe den Grund von mir gefunden. Ich habe TransactionTestCase anstelle der normalen Testcase Basisklasse zu verwenden. die Dokumentation.

Andere Tipps

Eine Abhilfe könnte sein, die Standard-Speicher-Engine auf dem Server InnoDB einzustellen.

in my.cnf:

set default_storage_engine=InnoDB

Das sollte funktionieren, wenn django ausdrücklich MyISAM Kommissionierung wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top