Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么在一个失败的命令之后,使用peewee ORM和posgresql为所有后续命令获取peewee.InternalError?_Python_Postgresql_Peewee - Fatal编程技术网

Python 为什么在一个失败的命令之后,使用peewee ORM和posgresql为所有后续命令获取peewee.InternalError?

Python 为什么在一个失败的命令之后,使用peewee ORM和posgresql为所有后续命令获取peewee.InternalError?,python,postgresql,peewee,Python,Postgresql,Peewee,我已经与peewee和postgresql广泛合作了几个月。突然,这种情况开始发生。如果我运行任何查询命令并得到一个错误,那么所有后续命令开始返回peewee.InternalError:当前事务被中止,在事务块结束之前忽略命令 我以为这种行为是从我将peewee从3.5.2升级到3.7.2时开始的,但后来我降级了,这种行为还在继续。这肯定不是经常发生 在最简单的情况下,我有一个只有一条记录的数据库表。我尝试创建一个具有相同id的新记录,得到了预期的IntegrityError。然后,如果我尝试

我已经与peewee和postgresql广泛合作了几个月。突然,这种情况开始发生。如果我运行任何查询命令并得到一个错误,那么所有后续命令开始返回
peewee.InternalError:当前事务被中止,在事务块结束之前忽略命令

我以为这种行为是从我将peewee从3.5.2升级到3.7.2时开始的,但后来我降级了,这种行为还在继续。这肯定不是经常发生

在最简单的情况下,我有一个只有一条记录的数据库表。我尝试创建一个具有相同id的新记录,得到了预期的
IntegrityError
。然后,如果我尝试在该数据库上运行任何其他查询命令,我会得到如上所述的
InternalError

这不会发生在sqlite数据库中

我已经重新安装了peewee和psycopg2,但没有效果


我缺少什么?

尝试在
数据库
类中设置
自动回滚=True
。你可以跟着我


您的问题在

中已经知道了。虽然使用自动回滚是可以的,但是显式管理事务要好得多,这样在可能发生完整性错误的地方,您就可以捕获错误并显式回滚。例如,如果您有一个用户注册页面,并且用户名上有一个唯一的约束,您可以将其包装为try/except,并在失败时回滚。

谢谢!我不知道我怎么还没有遇到那个问题。天哪。你的回答救了我的命!