如何在django中监控mysql表的变化?

时间:2011-03-22 12:50:19

标签: mysql django monitor

为了监视django中的mysql表更改,我编写了如下代码,

while not find_close_signal():
    time.sleep(10)
    if MyProject.models.MyModel.objects.all().exists():
        some_execution()

然而,它不起作用。如果开头的表中没有条目,则some_execution()将永远不会运行,甚至以后通过其他带外方式填充到该表中的记录。

有没有人遇到过这样的问题?

我也在“manage.py shell”中发现,这个问题发生的完全相同:在这个shell中找不到添加到此shell的db中的任何其他条目。这是真的还是我犯了一些错误?感谢

3 个答案:

答案 0 :(得分:1)

不确定这是一个问题,但可能是您在事务中执行了此代码,因此在这种情况下您无法看到任何更改。

还有一件事是你可以在这张支票中跳过“.all()”。

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以将数据库标记为“dirty”,以便让Django丢弃缓存结果:

from django.db import transaction
transaction.set_dirty()