关键词搜索

源码搜索 ×
×

Python笔记-Can’t reconnect until invalid transaction is rolled back

发布2021-07-20浏览1988次

详情内容

原因是没有调用

session.rollback()

解决方法:

  1. @contextmanager
  2. def session_scope(self):
  3. self.db_engine = create_engine(self.db_config, pool_pre_ping=True) # echo=True if needed to see background SQL
  4. Session = sessionmaker(bind=self.db_engine)
  5. session = Session()
  6. try:
  7. # this is where the "work" happens!
  8. yield session
  9. # always commit changes!
  10. session.commit()
  11. except:
  12. # if any kind of exception occurs, rollback transaction
  13. session.rollback()
  14. raise
  15. finally:
  16. session.close()

另一种形式:

  1. try:
  2. ......
  3. ......
  4. ......
  5. ......
  6. except Exception:
  7. import traceback
  8. traceback.print_exc()
  9. db.session.rollback()
  10. pass
  11. finally:
  12. db.session.close()
  13. pass

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载