L'application DATABASE_OPTIONS lors de l'essai projet Django (ou faire utiliser InnoDB pour MySQL)
-
21-08-2019 - |
Question
Comme le dit le titre, je veux appliquer des paramètres de DATABASE_OPTIONS quand je lance mes tests via ./manage.py test
. Dans django/db/backends/creation.py
, il ne considère pas cette option du tout à la fois et create_test_db()
_create_test_db()
.
Ce casse un test en vue qui utilise la fonction avec InnoDB transaction.rollback
. Il semble que les bases de données de test ne sont pas créés avec le moteur de stockage InnoDB.
Y at-il ou solution de contournement à résoudre ce problème?
La solution 2
J'ai trouvé la raison pour moi-même. Je dois utiliser TransactionTestCase au lieu de la classe de base de TestCase normale. Consultez la documentation.
Autres conseils
Une solution pourrait être de mettre 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.