2009-07-01 6 views
0

Comme le titre l'indique, je souhaite appliquer les paramètres DATABASE_OPTIONS lorsque j'exécute mes tests via ./manage.py test. Dans django/db/backends/creation.py, il ne considère pas du tout cette option dans create_test_db() et _create_test_db().Application de DATABASE_OPTIONS lors du test du projet Django (ou utilisation d'InnoDB pour MySQL)

Ceci casse un test avec une vue qui utilise la fonction transaction.rollback avec InnoDB. Il semble que les bases de données de test ne sont pas créées avec le moteur de stockage InnoDB.

Y a-t-il une solution de contournement ou une solution à ce problème?

Répondre

0

J'ai trouvé la raison par moi-même. Je dois utiliser TransactionTestCase au lieu de la classe de base TestCase normale. See the documentation.

0

Une solution de contournement consiste peut-être à définir le moteur de stockage par défaut sur votre serveur à InnoDB.

dans my.cnf:

set default_storage_engine=InnoDB 

Cela devrait fonctionner à moins django est de choisir explicitement MyISAM.

+0

Oui, j'avais déjà appliqué ceci, mais pour les cas de test, cela n'a pas aidé. Voir ma réponse personnelle ci-dessous. :) – Achimnol

Questions connexes