mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-07 17:31:24 -04:00
3d6a109c83
this DB is extremely erratic in being able to connect. Add a brute force connection retrier to all engines everywhere (which for oracledb we can fortunately use their built-in feature that also works). This actually works and I can see it pausing under load, reconnecting, and succeeding. the problem is that absolutely every engine everywhere needs this routine otherwise an engine without a retrier in it will crash. That then necessitates digging into testing_engine(), making sure testing_engine() is used everywhere an engine that's going to connect is used, then dealing with the fallout from that. We also simplify some older workarounds for cx_oracle and hack into config/provision to make oracledb seem like the primary DBAPI for most tests. testing_engine has been completely overhauled, making use of a new post_configure_testing_engine() hook which moves and refines the SQLite pool sharing and savepoint logic all into sqlite/provision.py and also allows for cx_oracle to apply a retry event handler. Change-Id: I4ea4c523effb878290d28b94d8925eb32fc5ae3b