Django आपके ऐप में प्रत्येक नई जोड़ी गई तालिका के लिए माइग्रेशन बनाता है, भले ही वह एक प्रबंधित मॉडल हो या नहीं। हालांकि जब आप managed=False
. का उपयोग करते हैं तो एक बहुत ही महत्वपूर्ण और सूक्ष्म अंतर होता है स्थापना। परिणामी प्रवास एक डमी प्रविष्टि है। यह किसी भी SQL को बिल्कुल भी निष्पादित नहीं करता है।
इसकी पुष्टि करने के लिए एक नया मॉडल जोड़ें जो अप्रबंधित है
class Dummy(models.Model):
something = models.IntegerField()
class Meta:
managed = False
अब जब आप makemigrations
करते हैं उसके बाद sqlimigrate *myapp* *migration_number*
आप देखेंगे कि यह कोई sql उत्पन्न नहीं करता है।
यदि दूसरी ओर, आप पाते हैं कि Django आपके लिए एक टेबल बनाने की कोशिश कर रहा है, तो आमतौर पर इसका मतलब है कि आपके पास पहले एक ही मॉडल अस्तित्व में था लेकिन उस समय मॉडल का प्रबंधन किया गया था। इसकी पुष्टि करने के लिए, अपना migrations
खोजें VirtualTotal
. के लिए फ़ोल्डर जो विचाराधीन मॉडल का नाम है।