GitHub user rusackas edited a comment on the discussion: Roadmap to SQLAlchemy 2
#42542 merged and covers the driver dual-compat prep for step 6: bumped what could bump, and added `known_incompatibilities` metadata (now rendered in docs) for the ones that can't, Aurora Data API, D1, Kusto, Solr. I also tried the flask-sqlalchemy 3.0.5 bump in that same PR and had to revert it. Real CI turned up widespread NoneType errors across dashboards/security/tasks tests plus MySQL lock timeouts, capped below 3.0 for now. Dug into it more since, and I don't think it's our session handling at all, it's a gap in Flask-AppBuilder's own FSA-3.x shim: `base_legacy.py` rebinds our models onto FAB's `declarative_base()` via `create_session()`/`get_bind()` overrides, `base.py` (the FSA 3.x version) drops all of that and never passes `model_class=` to `SQLA(app)`. Flagged it on #39278 and asked dpgaspar directly since he wrote FAB. Also caught two more models missing `cascade_backrefs=False` from step 2's sweep, SSHTunnel and the two report models. #42787 has that fix, tests green. So step 6's driver prep is done but the actual core bump is still blocked on the FAB gap getting resolved one way or another. [EDIT] Correction on the FAB theory from my last comment. Tested it directly in #42789 (draft, now closed), confirmed the registries actually do get unified with `model_class=` wired through, and the exact same CI failures happened anyway. So that wasn't it. Pulled real failure logs this time instead of the summary. `db.session.bind` is `None` outright at the point of failure, and a query right after a fixture sets up its data comes back empty. That's back to FSA 3.0's actual session-scoping change being the real suspect, not a registry mismatch. Going to dig into where the bind resolution actually breaks down before claiming a theory again. GitHub link: https://github.com/apache/superset/discussions/40273#discussioncomment-17901962 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
