Ayer estaba trabajando con algunas cosas de sqlalchemy que necesitaban un concepto de "selección ... para actualizar" para evitar una condición de carrera. La adición de .with_lockmode('update')
a la consulta funciona un convite en InnoDB y PostgreSQL, SQLite, pero para que al final tener que colarse en uncómo hacer que sqlite seleccione para actualizar el comportamiento de transacción en sqlalchemy
if session.bind.name == 'sqlite':
session.execute('begin immediate transaction')
antes de hacer la selección.
Esto parece funcionar por ahora, pero se siente como hacer trampa. ¿Hay una mejor manera de hacer esto?
Esto es necesario cuando el grupo de conexiones es algo además de 'NullPool'; o dicho de otra manera, cuando el dsn es 'sqlite: ///: memory:'? – SingleNegationElimination