Postgresql上的Django测试失败(8.4) - 刷新数据库导致错误

时间:2011-09-07 14:26:37

标签: python database django postgresql testing

在尝试为PostgreSQL后端的项目运行DJ测试时,我正在处理一个非常烦人的问题。它开始运行测试,当第一次DB刷新发生时,它会失败并出现一个奇怪的错误:

..Error: Database dbname couldn't be flushed. Possible reasons:
  * The database isn't running or isn't configured correctly.
  * At least one of the expected database tables doesn't exist.
  * The SQL was invalid.
Hint: Look at the output of 'django-admin.py sqlflush'. That's the SQL this command wasn't able to run.
The full error: cannot TRUNCATE "table_name" because it has pending trigger events

如果我通过pgAdmin运行sqlflush的输出,它运行就好了。

欢迎任何想法可能的原因。

更新

好吧,看起来这实际上不是Django的问题,而是与 djangosanetesting 的测试运行器有关。使用默认的DJ测试运行器或 django-nose 测试运行器,它可以工作。

1 个答案:

答案 0 :(得分:1)

好吧,看起来这实际上并不是Django的问题,而是与 djangosanetesting 的测试运行器有关,因为flushing似乎在某种程度上被打破了。 目前我没有比使用 django-nose 测试运行器更好的解决方案。