测试期间django-admin.py sqlflush错误

lfa*_*des 7 mysql django myisam

我在我的Django应用程序中有一组测试用于传递,但在软件演变的某些时候,我开始在运行测试时得到这种消息:

错误:无法刷新数据库test_totomanager_demo.可能的原因:
  *数据库未运行或未正确配置.
  *至少有一个预期的数据库表不存在.
  *SQL无效.
提示:查看'django-admin.py sqlflush'的输出.这是SQL命令无法运行的.
完整错误:(1105,"MyISAM表'video_videoinstallation'正在使用中(最有可能是MERGE表).尝试FLUSH TABLES.")

数据库是MySQL.

此错误开始发生的确切测试是不可预测的.这不是第一次发生,但是经过一两次尝试之后它已经过去了,这次我无法让测试结束.

有关如何避免这种情况的任何提示?

小智 1

这可能是因为你的表类型是MyISAM,它锁定了整个表,如果你不需要在这个表中“全文搜索”那么你应该将其设为innodb表。

我不知道 django 测试如何运行,但一种可能的解决方案是一次运行一个测试,而不是一次运行所有测试,以避免在表锁定时进行测试。