English 中文(简体)
Django+Postgres:“目前的交易是流产的,在交易集团结束之前,指挥受到忽视”。
原标题:Django+Postgres: "current transaction is aborted, commands ignored until end of transaction block"

I ve started working on a Django/Postgres site. Sometimes I work in manage.py shell, and accidentally do some DB action that results in an error. Then I am unable to do any database action at all, because for any database action I try to do, I get the error:

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

我目前的工作是重新开始谈判,但我应找到办法,在不放弃我的会期的情况下解决这一问题。

(I ve 改为, , , 但它们没有对她的指示采取行动。

最佳回答
问题回答

this happens to me sometimes, often it s the missing

manage.py migrate 

manage.py syncdb

本文也提到了这一点。

如果你们的移民要靠自己的模式进行,也可以以其他方式。 py. 在南方,你需要更新该表。

manage.py schemamigration mymodel --auto

I had this error after restoring a backup to a totally empty DB. It went away after running:

./manage syncdb 

或许有些内部模式从垃圾场消失......

www.un.org/Depts/DGACM/index_spanish.htm WARNING:以下表格可能会导致交易在(至少包括邮资)的开放状态下进行。 这不是100%的保证(以及如何确定),但我高度建议不要在生产数据库中填写以下表格。

由于接受的回答没有解决我的问题——一旦我发现任何非行错误,我就无法采取任何新的非行行动,即使有人工退缩,我也拿出了自己的解决办法。

当我跑Django-shell时,我派遣Django在出现任何错误后立即关闭亚洲开发银行的联系。 这样,我就不必考虑撤销交易或处理联系。

这是我在Django-shell-session一开始的Im装载法:

from django import db
from django.db.backends.util import CursorDebugWrapper
old_execute = CursorDebugWrapper.execute
old_execute_many = CursorDebugWrapper.executemany

def execute_wrapper(*args, **kwargs):
    try:
        old_execute(*args, **kwargs)
    except Exception, ex:
        logger.error("Database error:
%s" % ex)
        db.close_connection()

def execute_many_wrapper(*args, **kwargs):
    try:
        old_execute_many(*args, **kwargs)
    except Exception, ex:
        logger.error("Database error:
%s" % ex)
        db.close_connection()

CursorDebugWrapper.execute = execute_wrapper
CursorDebugWrapper.executemany = execute_many_wrapper

对我来说,这是一个没有移民的测试数据库。 我正在使用<代码>-keepdb进行测试。 如果不确定错误,就立即执行。

在这个问题上有许多有益的答案,但说明问题的根源仍然是一项挑战。 因此,我将试图就我如何能够阐明我问题的解决方案提供更多的背景。

具体来说,就Django而言,你想在提出错误之前就转而处理 log点,你可以发现在 con中失败的疑问。 回答是直接 on,你会看到错。

就我而言,在干.中遗漏了一栏,因此在移徙之后,一切工作都是正确的。

我希望这将有助益。

如果你在操作<代码>igrate(南部)时出现这种错误,那么,你可以有很多数据库图象的改动,并想一劳永逸地处理。 邮政是这方面的一个新点。 总是行之有效的,是把一大移民分成小步骤。 很可能,你重新使用版本控制系统。

  • Your current version
  • Commit n1
  • Commit n2
  • Commit n3
  • Commit n4 # db changes
  • Commit n5
  • Commit n6
  • Commit n7 # db changse
  • Commit n8
  • Commit n9 # db changes
  • Commit n10

因此,鉴于上述情况,情况如下:

  • Checkout repository to "n4", then syncdb and migrate.
  • Checkout repository to "n7", then syncdb and migrate.
  • Checkout repository to "n10", then syncdb and migrate.

页: 1

It should run flawlessly.

我在我的环境档案中添加以下内容,因为我喜欢“左右”时的汽车特征,但是,如果我的网站在其他运行时,它会想起它的作用。

因此,仅仅在壳体内实现汽车开关,我就这样做了:

import sys
if  shell  in sys.argv or sys.argv[0].endswith( pydevconsole.py ):
    DATABASES[ default ][ OPTIONS ][ autocommit ] = True

注:第二部分是因为我在PyCharm工作,而PyCharm是直接管理的。 y

在我的案件中,由于我有移民档案,我没有向数据库申请。 我通过这样做确定:<代码>python管理。 pymigration(或python3管理)。 pymigration

对我来说,这个问题是在进行测试的背景下发生的。 总是有一些数据库错误导致交易被流产。 在我的案件中,犯罪陈述属于一个审判/例外的栏目,该笔错误被封起来,没有被重新改正,因此错误信息被压制。 如果你获得“当前交易是被挫败的,那么在交易集团结束之前,指挥就被忽视了”,这种信息没有任何明显的理由,在尝试/例外的集团中寻求“K”电话,并暂时取消审判/例外。





相关问题
摘录数据

我如何将Excel板的数据输入我的Django应用? I m将PosgreSQL数据库作为数据库。

Postgres dump of only parts of tables for a dev snapshot

On production our database is a few hundred gigabytes in size. For development and testing, we need to create snapshots of this database that are functionally equivalent, but which are only 10 or 20 ...

How to join attributes in sql select statement?

I want to join few attributes in select statement as one for example select id, (name + + surname + + age) as info from users this doesn t work, how to do it? I m using postgreSQL.

What text encoding to use?

I need to setup my PostgreSQL DB s text encoding to handle non-American English characters that you d find showing up in languages such as German, Spanish, and French. What character encoding should ...

SQL LIKE condition to check for integer?

I am using a set of SQL LIKE conditions to go through the alphabet and list all items beginning with the appropriate letter, e.g. to get all books where the title starts with the letter "A": SELECT * ...