2011-12-19 49 views
0

我有一个小型的python脚本,它将数据推送到我的django postgres数据库。 它从django项目中导入相关的模型,并使用.save函数将数据保存到db中,没有问题。postgres + GeoDajango - 数据似乎没有保存

昨天系统运行良好。在一天中,我开始并停止了django项目和python脚本多次,但从未重新启动或关闭计算机,直到一天结束。

今天我发现数据不再在分贝!

这似乎很愚蠢,因为我可能忘记做一些明显的事情,但我认为当从模型调用save函数时,数据被提交给db。

+0

也许我需要显式调用一个提交函数时使用postgres而不是mysql的sqlite? – michael 2011-12-19 19:16:20

+0

重新启动我的电脑,看看是否发生了同样的事情,但数据在这里。也许计算机没有干净地关闭? – michael 2011-12-19 20:20:03

回答

1

所以这个答案是“从哪里开始解决这样的问题”,因为问题很模糊,我们没有足够的信息来有效地排除故障。

如果再次发生这种情况,首先要做的是打开PostgreSQL的语句日志记录并查看它们进入的语句。这应该显示您开始并提交语句以及查询。在没有访问查询的情况下解决这类问题几乎是不可能的。需要查找的内容包括缺少COMMIT和缺少语句。

之后,接下来要做的是看看您的计算机重新启动的情况。它是否有可能在预期的提交之前这样做?或者它是否失去动力,并且没有及时将事务日志刷新到磁盘?

这两个应该排除开发环境中数据库方面所有可能的原因。在旧版PostgreSQL的生产环境中,您确实希望验证系统是否已正确运行,并且您没有收到有关xid环绕的警告。在较新的版本中,这不是问题,因为PostgreSQL在接近xid wraparound时会拒绝接受查询。