Lo más probable es que su aplicación no use el sistema de eventos Flask-SQLAlchemy, por lo que probablemente sea seguro apagarlo. Tendrá que auditar el código para verificar: está buscando cualquier cosa que se conecte a models_committed
obefore_models_committed
. Si encuentra que está utilizando el sistema de eventos Flask-SQLAlchemy, probablemente debería actualizar el código para utilizar el sistema de eventos incorporado de SQLAlchemy.
Para desactivar el sistema de eventos Flask-SQLAlchemy (y deshabilitar la advertencia), simplemente agregue:
SQLALCHEMY_TRACK_MODIFICATIONS = False
a la configuración de su aplicación hasta que se cambie el valor predeterminado (muy probablemente en Flask-SQLAlchemy v3).
Antecedentes: esto es lo que le dice la advertencia:
Flask-SQLAlchemy tiene su propio sistema de notificación de eventos que se superpone a SQLAlchemy. Para hacer esto, rastrea las modificaciones a la sesión SQLAlchemy. Esto requiere recursos adicionales, por lo que la opción le SQLALCHEMY_TRACK_MODIFICATIONS
permite deshabilitar el sistema de seguimiento de modificaciones. Actualmente, la opción predeterminada es True
, pero en el futuro, ese valor predeterminado cambiará a False
, deshabilitando así el sistema de eventos.
Por lo que yo entiendo, la justificación del cambio es triple:
No mucha gente usa el sistema de eventos de Flask-SQLAlchemy, pero la mayoría de las personas no se dan cuenta de que pueden ahorrar recursos del sistema deshabilitándolo. Entonces, un valor predeterminado más sano es deshabilitarlo y aquellos que lo deseen pueden activarlo.
El sistema de eventos en Flask-SQLAlchemy ha sido bastante defectuoso (vea los problemas vinculados en la solicitud de extracción mencionada a continuación), que requiere mantenimiento adicional para una función que pocas personas usan.
En v0.7, SQLAlchemy mismo agregó un poderoso sistema de eventos que incluye la capacidad de crear eventos personalizados. Idealmente, el sistema de eventos Flask-SQLAlchemy no debería hacer nada más que crear algunos ganchos y escuchas de eventos SQLAlchemy personalizados, y luego dejar que SQLAlchemy mismo administre el desencadenante del evento.
Puede ver más en la discusión sobre la solicitud de extracción que comenzó a activar esta advertencia .