sql_select() (panels/sqlalchemy.py) seems not tested in #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:
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.
sql_select()(panels/sqlalchemy.py) seems not tested in #186. The updates introduce some API changes that affect howsql_select()operates:get_engine()requires an initialized (init_app()ed)SQLAlchemyinstance.Engineobject no longer has anexecute()method directly; instead, obtaining a connection is required for execution.execute()method does not support positional parameters anymore.To address these issues, I made some local modifications. Here are the specific changes:
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.