Sempre que executo meu aplicativo que usa Flask-SQLAlchemy, recebo o seguinte aviso de que a SQLALCHEMY_TRACK_MODIFICATIONS
opção será desativada.
/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.')
Tentei descobrir o que essa opção faz, mas a documentação do Flask-SQLAlchemy não está clara sobre o que usa esse rastreamento.
SQLALCHEMY_TRACK_MODIFICATIONS
Se definido como True (o padrão), o Flask-SQLAlchemy rastreará modificações de objetos e emitirá sinais. Isso requer memória extra e pode ser desativado se não for necessário.
Como descubro se meu projeto exige SQLALCHEMY_TRACK_MODIFICATIONS = True
ou se posso desativar com segurança esse recurso e economizar memória no meu servidor?
fonte
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']
: onde app é seu aplicativo de balão criado usandoflask.Flask()
A explicação detalhada de Jeff Widman é simplesmente perfeita.
Desde que eu tive algumas brigas de copiar e colar antes de acertar, eu gostaria de facilitar para a próxima que estará no meu lugar.
No seu código, imediatamente após :
Se você deseja ativar as modificações de faixa, basta adicionar:
Caso contrário, se você não estiver usando esse recurso, convém alterar o valor para False para não desperdiçar recursos do sistema. Isso ainda silenciará o aviso, pois você estará definindo explicitamente a configuração.
Aqui está o mesmo trecho com valor False:
Agradecemos a Jeff Widman por esta sugestão e detalhes adicionais.
fonte
False
para não desperdiçar recursos do sistema. Isso ainda silenciará o aviso, pois você ainda definirá explicitamente a configuração.As respostas acima parecem boas. No entanto, eu queria apontar essa linha na documentação do Flask-SQLAlchemy porque ainda estava recebendo esses avisos depois de definir
SQLALCHEMY_TRACK_MODIFICATIONS = False
na configuração do aplicativo.Nesta página: http://flask-sqlalchemy.pocoo.org/2.3/config/
Em outras palavras, certifique-se de configurar o seu
app.config
antes de criar seu banco de dados Flask-SQLAlchemy.Por exemplo, se você estiver configurando seu aplicativo para definir
SQLALCHEMY_TRACK_MODIFICATIONS = False
:fonte