正如标题所说,我想在运行测试时应用 DATABASE_OPTIONS 设置./manage.py test
。在和django/db/backends/creation.py
中,它根本不考虑这个选项。create_test_db()
_create_test_db()
这打破了一个使用transaction.rollback
InnoDB 函数的视图的测试。似乎测试数据库不是使用 InnoDB 存储引擎创建的。
是否有任何解决方法或解决此问题的方法?
正如标题所说,我想在运行测试时应用 DATABASE_OPTIONS 设置./manage.py test
。在和django/db/backends/creation.py
中,它根本不考虑这个选项。create_test_db()
_create_test_db()
这打破了一个使用transaction.rollback
InnoDB 函数的视图的测试。似乎测试数据库不是使用 InnoDB 存储引擎创建的。
是否有任何解决方法或解决此问题的方法?
一种解决方法可能是将服务器上的默认存储引擎设置为 InnoDB。
在 my.cnf 中:
set default_storage_engine=InnoDB
除非 django 明确选择 MyISAM,否则这应该有效。
我自己找到了原因。我必须使用 TransactionTestCase 而不是普通的 TestCase 基类。请参阅文档。