Почему я получаю вложенную ошибку отката SQLAlchemy?

Я получил следующую ошибку в моем коде python (который собирает статусы твиттера и сохраняет их в базе данных).

sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back by a nested rollback() call.  To begin a new transaction, issue Session.rollback() first.

Я хочу знать, в чем проблема, почему она возникает и как ее решить.

Я понятия не имею о вложенном откате . Есть ли какой-нибудь простой пример, который происходит вложенный откат ?

30
задан fbessho 25 May 2019 в 12:57
поделиться

1 ответ

Проблема была решена. Дело в том, что в этом случае откат не выполняется до тех пор, пока мы не вызовем откат явно, поэтому, когда мы включаем commit(), мы должны записать его в оператор try и написать rollback() в оператор исключения (в большинстве случаев) как написано в http://www.sqlalchemy.org/trac/wiki/FAQ#Thetransactionisinactiveduetoarollbackinasubtransaction

И вот правильный пример кода. Я цитировал это по ссылке выше.

try:
    <use session>
    session.commit()
except:
    session.rollback()
    raise
finally:
    session.close()  # optional, depends on use case
6
ответ дан 28 November 2019 в 00:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: