Jedes Mal, wenn ich meine App starte, die Flask-SQLAlchemy verwendet, wird die folgende Warnung angezeigt, dass die SQLALCHEMY_TRACK_MODIFICATIONS
Option deaktiviert wird.
/home/david/.virtualenvs/flask-sqlalchemy/lib/python3.5/site-packages/flask_sqlalchemy/__init__.py:800: UserWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning.
warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning.')
Ich habe versucht herauszufinden, was diese Option bewirkt, aber in der Flask-SQLAlchemy-Dokumentation ist nicht klar, wie dieses Tracking verwendet wird.
SQLALCHEMY_TRACK_MODIFICATIONS
Bei der Einstellung True (Standardeinstellung) verfolgt Flask-SQLAlchemy Änderungen von Objekten und sendet Signale aus. Dies erfordert zusätzlichen Speicher und kann deaktiviert werden, wenn er nicht benötigt wird.
Wie finde ich heraus, ob mein Projekt dies erfordert SQLALCHEMY_TRACK_MODIFICATIONS = True
oder ob ich diese Funktion sicher deaktivieren und Speicher auf meinem Server speichern kann?
quelle
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
, wobei App Ihre Kolben-App ist, die mitflask.Flask()
Jeff Widmans detaillierte Erklärung ist einfach perfekt.
Da ich einige Copy'n'Paste-Kämpfe hatte, bevor ich das richtig hinbekam, möchte ich es dem nächsten leichter machen, der in meinen Schuhen sein wird.
In Ihrem Code unmittelbar danach :
Wenn Sie Spuränderungen aktivieren möchten, fügen Sie einfach Folgendes hinzu:
Wenn Sie diese Funktion nicht verwenden, möchten Sie möglicherweise den Wert in "Falsch" ändern, um keine Systemressourcen zu verschwenden. Dadurch wird die Warnung weiterhin stummgeschaltet, da Sie die Konfiguration ohnehin explizit festlegen.
Hier ist das gleiche Snippet mit dem Wert False:
Vielen Dank an Jeff Widman für diesen zusätzlichen Vorschlag und Details.
quelle
False
damit Sie keine Systemressourcen verschwenden. Dadurch wird die Warnung weiterhin stummgeschaltet, da Sie die Konfiguration weiterhin explizit festlegen.Die obigen Antworten sehen gut aus. Ich wollte jedoch in der Flask-SQLAlchemy-Dokumentation auf diese Zeile hinweisen, da ich diese Warnungen nach dem Einstellen
SQLALCHEMY_TRACK_MODIFICATIONS = False
in meiner Anwendungskonfiguration immer noch erhielt .Auf dieser Seite: http://flask-sqlalchemy.pocoo.org/2.3/config/
Mit anderen Worten, stellen Sie sicher, dass Sie Ihre einrichten,
app.config
bevor Sie Ihre Flask-SQLAlchemy-Datenbank erstellen.Wenn Sie beispielsweise Ihre Anwendung so konfigurieren, dass Folgendes festgelegt wird
SQLALCHEMY_TRACK_MODIFICATIONS = False
:quelle