0

我有一个小的 python 脚本,可以将数据推送到我的 django postgres db。它从 django 项目中导入相关模型,并使用 .save 函数将数据保存到数据库中而不会出现问题。

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

今天发现数据库里已经没有数据了!

这看起来很愚蠢,因为我可能忘记做一些明显的事情,但我认为当从模型调用保存函数时,数据会提交到数据库。

4

1 回答 1

1

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

如果这种情况再次发生,首先要做的是打开 PostgreSQL 的语句日志记录并查看进入的语句。这应该向您显示 begin 和 commit 语句以及查询。如果不访问查询,几乎不可能解决此类问题。要查找的内容包括丢失的 COMMIT 和丢失的语句。

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

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

于 2013-03-25T01:23:35.990 回答