我正在使用sqlalchemy将数据存储到postgresql数据库中。我有点困惑,sqlalchemy回滚执行时没有抛出异常。我发现了一个article in the documentary并试图通过设置pool_reset_on_return='commit'
sqlalchemy回滚的原因
来防止回滚,这实际上导致sqlalchemy不做任何事情。因此,我插入的行明确要求,导致下面的输出:
2014-03-03 18:03:33,390,p:32764 Thread-3, sqlalchemy.engine.base.Engine(_execute_context) [INFO]: INSERT INTO _fd (**)
2014-03-03 18:03:33,391,p:32764 Thread-3, sqlalchemy.engine.base.Engine(_execute_context) [INFO]: {****}
2014-03-03 18:03:33,392,p:32764 Thread-3, sqlalchemy.engine.base.Engine(__init__) [DEBUG]: Col ('fid',)
2014-03-03 18:03:33,393,p:32764 Thread-3, sqlalchemy.engine.base.Engine(process_rows) [DEBUG]: Row (*,)
2014-03-03 18:03:33,393,p:32764 Thread-3, sqlalchemy.engine.base.Engine(_rollback_impl) [INFO]: ROLLBACK
的代码退出简单至今:
1837 with conn.begin() as trans:
1838 statement = meta.tables[_table_name].insert().values(
...
1847 )
1848 res = conn.execute(statement)
1849 trans.commit()
有没有人有一个想法,可能是什么原因为了回滚?