python - मुझे कैसे पता चलेगा कि मैं SQLALCHEMY_TRACK_MODIFICATIONS को अक्षम कर सकता हूं?




flask flask-sqlalchemy (2)

उपरोक्त उत्तर अच्छे लगते हैं। हालाँकि, मैं इस लाइन को SQLALCHEMY_TRACK_MODIFICATIONS = False SQLAlchemy डॉक्यूमेंटेशन में बताना चाहता था क्योंकि SQLALCHEMY_TRACK_MODIFICATIONS = False को अपने एप्लिकेशन कॉन्फिग में सेट करने के बाद भी मुझे ये चेतावनी मिल रही थी।

इस पृष्ठ पर: http://flask-sqlalchemy.pocoo.org/2.3/config/

फ्लास्क-SQLAlchemy के लिए निम्न कॉन्फ़िगरेशन मान मौजूद हैं। फ्लास्क-एसक्यूएलकेमी इन मूल्यों को आपके मुख्य फ्लास्क कॉन्फिग से लोड करता है जिसे विभिन्न तरीकों से पॉप्युलेट किया जा सकता है। ध्यान दें कि इंजन बनाए जाने के बाद उनमें से कुछ को संशोधित नहीं किया जा सकता है इसलिए सुनिश्चित करें कि जितनी जल्दी हो सके कॉन्फ़िगर करें और रनटाइम पर उन्हें संशोधित न करें।

दूसरे शब्दों में, अपना Flask-SQLAlchemy डेटाबेस बनाने से पहले अपने app.config को सेट करना सुनिश्चित करें।

उदाहरण के लिए, यदि आप SQLALCHEMY_TRACK_MODIFICATIONS = False सेट करने के लिए अपने एप्लिकेशन को कॉन्फ़िगर कर रहे हैं:

from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

हर बार जब मैं अपना ऐप चलाता हूं जो फ्लास्क- SQLALCHEMY_TRACK_MODIFICATIONS का उपयोग करता है तो मुझे निम्न चेतावनी मिलती है कि 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.')

मैंने यह पता लगाने की कोशिश की कि यह विकल्प क्या करता है, लेकिन फ्लास्क-एसक्यूएलकेमी प्रलेखन इस ट्रैकिंग का उपयोग करने के बारे में स्पष्ट नहीं है।

SQLALCHEMY_TRACK_MODIFICATIONS

यदि यह सही (डिफ़ॉल्ट) पर सेट है, फ्लास्क-SQLAlchemy वस्तुओं के संशोधनों को ट्रैक करेगा और संकेतों का उत्सर्जन करेगा। इसके लिए अतिरिक्त मेमोरी की आवश्यकता होती है और जरूरत न होने पर इसे निष्क्रिय किया जा सकता है।

मुझे कैसे पता चलेगा कि मेरी परियोजना के लिए SQLALCHEMY_TRACK_MODIFICATIONS = True या यदि मैं सुरक्षित रूप से इस सुविधा को अक्षम कर सकता हूं और अपने सर्वर पर मेमोरी को बचा सकता हूं?


जेफ विडमैन की विस्तृत व्याख्या बस एकदम सही है।

चूँकि मेरे पास यह अधिकार प्राप्त करने से पहले कुछ copy'n'paste झगड़े थे, इसलिए मैं इसे अगले एक के लिए आसान बनाना चाहूंगा जो मेरे जूते में होगा।

आपके कोड में, तुरंत बाद :

app = Flask(__name__)

यदि आप ट्रैक संशोधनों को बस जोड़ना चाहते हैं:

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

अन्यथा, यदि आप इस सुविधा का उपयोग नहीं कर रहे हैं, तो आप सिस्टम संसाधनों को व्यर्थ न करने के लिए मूल्य को गलत में बदलना चाह सकते हैं। यह अभी भी चेतावनी को चुप कर देगा क्योंकि आप वैसे भी स्पष्ट रूप से कॉन्फ़िगरेशन सेट कर रहे हैं।

यहाँ गलत मूल्य के साथ एक ही स्निपेट है:

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

इस जोड़े गए सुझाव और विवरण के लिए जेफ विडमैन का धन्यवाद।





flask-sqlalchemy