2009-07-01 4 views
0

Wie der Titel sagt, möchte ich DATABASE_OPTIONS-Einstellungen anwenden, wenn ich meine Tests über ./manage.py test ausführe. In django/db/backends/creation.py berücksichtigt es diese Option in create_test_db() und _create_test_db() überhaupt nicht.Anwendung von DATABASE_OPTIONS beim Testen des Django-Projekts (oder Verwendung von InnoDB für MySQL)

Dies bricht einen Test mit einer Ansicht, die transaction.rollback Funktion mit InnoDB verwendet. Es scheint, dass Testdatenbanken nicht mit InnoDB Storage Engine erstellt werden.

Gibt es eine Problemumgehung oder eine Lösung für dieses Problem?

Antwort

0

Ich habe den Grund selbst gefunden. Ich muss TransactionTestCase anstelle der normalen TestCase-Basisklasse verwenden. See the documentation.

0

Eine Problemumgehung könnte darin bestehen, die Standardspeicher-Engine auf Ihrem Server auf InnoDB zu setzen.

in my.cnf:

set default_storage_engine=InnoDB 

, die funktionieren sollte, es sei denn django ausdrücklich MyISAM Kommissionierung wird.

+0

Ja, ich hatte das bereits angewendet, aber für Testfälle hat es nicht geholfen. Siehe meine Selbstantwort unten. :) – Achimnol

Verwandte Themen