ITADN

sql_select/sql_explain not working with Flask-SQLAlchemy 3 & SQLAlchemy 2

#232Opentaoky 创建于 2024-02-07
good first issue
T
taokycommented
`sql_select()` (panels/sqlalchemy.py) seems not tested in https://github.com/pallets-eco/flask-debugtoolbar/pull/186/. The updates introduce some API changes that affect how `sql_select()` operates: - `get_engine()` requires an initialized (`init_app()`ed) `SQLAlchemy` instance. - The `Engine` object no longer has an `execute()` method directly; instead, obtaining a connection is required for execution. - The `execute()` method does not support positional parameters anymore. To address these issues, I made some local modifications. Here are the specific changes: ```patch 142c142,143 < engine = SQLAlchemy().get_engine(current_app) --- > sqlalchemy = current_app.extensions["sqlalchemy"] > engine = sqlalchemy.get_engine() 150c151,152 < result = engine.execute(statement, params) --- > with engine.connect() as connection: > result = connection.exec_driver_sql(statement, tuple(params[0])) ``` Given that I'm uncertain about the repercussions these changes might have on backward compatibility with Flask-SQLAlchemy 2.x versions, and due to time constraints on my end, I'm hesitant to submit a pull request myself. However, it would be great if someone could validate and extend these adjustments to ensure compatibility across both Flask-SQLAlchemy 2.x and 3.x versions.
2 条评论