Django + Postgres:“当前事务中止,命令被忽略,直到事务块结束”

问题描述 投票:71回答:10

我已经开始在Django / Postgres网站上工作。有时我在manage.py shell中工作,并且不小心执行了一些导致错误的数据库操作。然后我根本无法执行any数据库操作,因为对于我尝试执行的任何数据库操作,都会收到错误消息:

current transaction is aborted, commands ignored until end of transaction block

我当前的解决方法是重新启动外壳程序,但是我应该找到一种无需放弃外壳程序会话即可解决此问题的方法。

((我读过thisthis,但是它们没有给出有关如何从Shell执行操作的可行说明。]

我已经开始在Django / Postgres网站上工作。有时,我在manage.py shell中工作,并且意外地执行了一些导致错误的数据库操作。然后我根本无法执行任何数据库操作,...

django postgresql
10个回答
113
投票

您可以尝试以下方法:


0
投票

我浪费了大量的时间来寻找错误,因为我已经添加了模型字段并忘记了makemigrations


25
投票

有时候会在我身上发生这种情况,通常是失踪了


13
投票

3
投票

将备份还原到完全空的数据库后出现此错误。运行后消失了:


2
投票

警告:以下修补程序可能导致数据库上的事务处于打开状态(至少使用postgres)。不能100%地确定这一点(以及如何解决),但是我强烈建议不要在生产数据库上进行以下修补程序。


0
投票

如果在运行migrate(南部)时碰巧遇到这样的错误,则可能是您在数据库模式中进行了很多更改,并希望一次处理所有这些更改。 Postgres对此有点讨厌。始终有效的是将一个大型迁移分解为较小的步骤。您很可能正在使用版本控制系统。


0
投票

如果您在1.6之前使用的是Django版本,则应使用Christophe出色的xact模块。


0
投票

我将以下内容添加到我的设置文件中,因为我在“玩转”时喜欢自动提交功能,但在我的网站正在运行时不希望它处于活动状态。


0
投票

我在Django 1.7中遇到此错误。当我读the documentation时,

© www.soinside.com 2019 - 2024. All rights reserved.