Вчера я работал с некоторыми вещами sqlalchemy, которые нуждались в концепции "выбрать ... для обновления", чтобы избежать состояния гонки. Добавление .with_lockmode('update')
к запросу работает на InnoDB и Postgres, но для sqlite мне в итоге приходится красться в
if session.bind.name == 'sqlite':
session.execute('begin immediate transaction')
перед выполнением выбора.
Пока что это работает, но похоже на обман. Есть ли лучший способ сделать это?