Za każdym razem, gdy uruchamiam aplikację korzystającą z Flask-SQLAlchemy, otrzymuję następujące ostrzeżenie, że SQLALCHEMY_TRACK_MODIFICATIONS
opcja zostanie wyłączona.
/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.')
Próbowałem dowiedzieć się, co robi ta opcja, ale dokumentacja Flask-SQLAlchemy nie jest jasna, co używa tego śledzenia.
SQLALCHEMY_TRACK_MODIFICATIONS
Jeśli ustawiona na True (wartość domyślna), Flask-SQLAlchemy będzie śledzić modyfikacje obiektów i emitować sygnały. Wymaga to dodatkowej pamięci i można je wyłączyć, jeśli nie jest potrzebne.
Jak mogę się dowiedzieć, czy mój projekt tego wymaga SQLALCHEMY_TRACK_MODIFICATIONS = True
lub czy mogę bezpiecznie wyłączyć tę funkcję i oszczędzać pamięć na moim serwerze?
źródło
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
, gdzie aplikacja jest twoją aplikacją do kolby utworzoną przy użyciuflask.Flask()
Szczegółowe wyjaśnienie Jeffa Widmana jest po prostu doskonałe.
Ponieważ miałem kilka walk typu `` kopiuj i wklej '', zanim zrobiłem to dobrze, chciałbym ułatwić następną, która będzie w moich butach.
W Twoim kodzie, zaraz po :
Jeśli chcesz włączyć modyfikacje toru, po prostu dodaj:
W przeciwnym razie, jeśli nie używasz tej funkcji, możesz chcieć zmienić wartość na False, aby nie marnować zasobów systemowych. Spowoduje to wyciszenie ostrzeżenia, ponieważ i tak jawnie ustawiasz config.
Oto ten sam fragment z wartością False:
Podziękowania dla Jeffa Widmana za tę dodatkową sugestię i szczegóły.
źródło
False
nie marnować zasobów systemowych. Spowoduje to wyciszenie ostrzeżenia, ponieważ nadal jawnie ustawiasz plik config.Powyższe odpowiedzi wyglądają dobrze. Chciałem jednak zwrócić uwagę na ten wiersz w dokumentacji Flask-SQLAlchemy, ponieważ nadal otrzymywałem te ostrzeżenia po ustawieniu
SQLALCHEMY_TRACK_MODIFICATIONS = False
w konfiguracji mojej aplikacji.Na tej stronie: http://flask-sqlalchemy.pocoo.org/2.3/config/
Innymi słowy, upewnij się, że skonfigurowałeś swoją bazę danych
app.config
przed utworzeniem bazy danych Flask-SQLAlchemy.Na przykład, jeśli konfigurujesz aplikację, aby ustawić
SQLALCHEMY_TRACK_MODIFICATIONS = False
:źródło