2011-04-11 128 views
0

我想用Django的ORM做一些PostgreSQL后端的数据处理。给定主记录,在相关表中生成数百条记录,但如果发生任何错误,我想要回滚所有记录创建。因此,我将整个流程包含在手动交易中。但是,当我尝试提交()时,它抛出异常“关闭文件上的I/O操作”。谷歌搜索发现一些这方面的提及,但没有太多关于PG,并没有解决方案。这是什么意思?Python的PostgreSQL交易错误

编辑:我也注意到,当发生这种情况时,还有一个postgres进程标记了我的数据库名称和状态“IDLE in transaction”。我应该结束这个过程吗?

回答

2

如果你没有在开发服务器上运行它,那么这个错误很可能来自你的“打印”语句。例如,当通过mod_wsgi从Apache运行时,stdout文件描述符被关闭,因此不能像平常那样“打印”。

+0

你是说'IDLE in transaction'进程与打印语句(意思是apache模块报告错误的结果)有关? – alfonx 2012-04-08 22:32:58

+0

对不起,不确定。 – shadfc 2012-04-19 17:37:38