1đź‘Ť
You haven’t said where in your 7 steps you have transactions that begin and end. That would be helpful to know.
One source of “transaction aborted” messages is due to deadlocks. More details would be in the PostgreSQL logs.
But the bottom line is that you will continue to have a painful and time-consuming experience debugging PostgreSQL if you can’t get access to your PostgreSQL error messages. Take that up with WebFaction. If they can’t helpful and your time is worth much, your bottom line costs will be lower by moving to an environment that provides this fundamental feature.
1đź‘Ť
You have to enable autocommit for the transaction. In your DATABASES
entry, include:
'OPTIONS': {'autocommit': True,},
By default, Django opens a transaction at the first query. By using this option, you manually have to start a transaction (e.g. using @commit_on_success
). Since there is no transaction open anymore, you’ll get the actual error that was previously masked by the transaction error.
The autocommit setting will be the new default for Django 1.6, see https://docs.djangoproject.com/en/dev/ref/databases/#postgresql-notes