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