Каждый раз, когда я запускаю свое приложение, использующее Flask-SQLAlchemy, я получаю следующее предупреждение о том, что SQLALCHEMY_TRACK_MODIFICATIONS
опция будет отключена.
/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.')
Я пытался выяснить, что делает этот параметр, но в документации Flask-SQLAlchemy не ясно, для чего используется это отслеживание.
SQLALCHEMY_TRACK_MODIFICATIONS
Если установлено значение True (по умолчанию), Flask-SQLAlchemy будет отслеживать изменения объектов и излучать сигналы. Это требует дополнительной памяти и может быть отключено, если не нужно.
Как узнать, требует ли мой проект SQLALCHEMY_TRACK_MODIFICATIONS = True
или я могу безопасно отключить эту функцию и сохранить память на моем сервере?
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
где приложение - это ваше приложение для колб, созданное с использованиемflask.Flask()
Подробное объяснение Джеффа Уидмена просто идеально.
Так как у меня были некоторые драки copy'n'paste прежде, чем я получил это право, я хотел бы облегчить для следующего, который будет в моих ботинках.
В вашем коде сразу после :
Если вы хотите включить модификации треков, просто добавьте:
В противном случае, если вы не используете эту функцию, вы можете изменить значение на False, чтобы не тратить системные ресурсы. Это все равно заставит замолчать предупреждение, поскольку вы все равно явно устанавливаете конфигурацию.
Вот тот же фрагмент со значением False:
Спасибо Джеффу Уидману за это добавленное предложение и детали.
источник
False
так, чтобы не тратить системные ресурсы. Это все еще заставит замолчать предупреждение, так как вы все еще явно устанавливаете конфигурацию.Приведенные выше ответы выглядят хорошо. Тем не менее, я хотел указать на эту строку в документации Flask-SQLAlchemy, потому что я все еще получал эти предупреждения после установки
SQLALCHEMY_TRACK_MODIFICATIONS = False
в моей конфигурации приложения.На этой странице: http://flask-sqlalchemy.pocoo.org/2.3/config/
Другими словами, убедитесь, что настроили свою,
app.config
прежде чем создавать базу данных Flask-SQLAlchemy.Например, если вы настраиваете свое приложение для установки
SQLALCHEMY_TRACK_MODIFICATIONS = False
:источник