Обновление Peewee вызывает странное поведение автофиксации ⇐ Python

Программы на Python
Anonymous
Обновление Peewee вызывает странное поведение автофиксации

Сообщение Anonymous »

В настоящее время мы используем peewe 2.x, и это код, который мы используем для пользовательского соединения MySQL:

Код: Выделить всё

from peewee import MySQLDatabase

class SQLDb(MySQLDatabase):
def connect(self, *args, **kwargs):
attempts = 5
while attempts > 0:
# Logic to retry db connection

def begin(self):
self.execute_sql('set autocommit=0')
self.execute_sql('begin')

Теперь я вызываю транзакцию, используя
DB.tranaction() во время выполнения транзакции.
Теперь, когда мы обновили peewe до версии 3.17 .x мы наблюдаем странное поведение.
если все установлено так, как есть

Код: Выделить всё

 def begin(self):
self.execute_sql('set autocommit=0')
self.execute_sql('begin')
Когда txn завершается и команда mysql запускается без txn, данные не фиксируются.
Когда я удаляю эту строку self.execute_sql('set autocommit=0'), она начинает работать как и ожидалось.
Теперь, если я удалю self.execute_sql('set autocommit=0'), я верю, что изменю поведение транзакции для фиксации при каждой команде mysql. Как мне убедиться, что с peewe 3.17.x все работает должным образом?
Все работает до версии peewe 3.15.3. В Peewe 3.16 есть некоторые важные изменения, связанные с поведением автокомитирования Peewe.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -behaviour

Вернуться в «Python»