2011-04-27 12 views
16

क्या वहां कोई स्क्रिप्ट है जो जांचती है कि एक Django मॉडल संबंधित डेटाबेस तालिका से मेल खाता है (syncdb के बाद)? मुझे दक्षिण में कनवर्ट करने से पहले ऐसा करने की ज़रूरत है, और मेरे मॉडल बहुत बड़े हैं, इसलिए मैन्युअल नेत्रगोलिंग करके इसे त्रुटियों के लिए अतिसंवेदनशील है। धन्यवाद!यह सुनिश्चित करने के लिए कि Django मॉडल डेटाबेस स्कीमा से मेल खाता है

+0

क्या आपका मतलब है कि 'python manage.py sql appname' की तुलना में कुछ स्वचालित है? –

उत्तर

20

अपने मॉडल परिभाषा और वास्तविक डेटाबेस क्षेत्रों के बीच एक अंतर प्राप्त करने के लिए आप django-extensions

पर एक नज़र ले सकता है विशेष रूप से ./manage.py sqldiff

Django आदेश दिया appnames के लिए सभी मॉडलों स्कैन करता है और तुलना वास्तविक डेटाबेस तालिकाओं के साथ डेटाबेस स्कीमा।

यह इंगित करता है कि डेटाबेस में कॉलम SQL से अलग हैं जो Django द्वारा उत्पन्न किया जाएगा। यह आदेश डेटाबेस माइग्रेशन उपकरण नहीं है। हालांकि शायद माइग्रेशन के दौरान सहायता की हो सकती है। इसका उद्देश्य वास्तविक डेटाबेस तालिका और कॉलम की तुलना में पर अपने मॉडलों की जांच या डिबगिंग करने के तरीके के रूप में वर्तमान अंतर को प्रदर्शित करना है।

+0

यह सही है, धन्यवाद! –

+0

@ केविन_82 इसे सुनकर खुशी हुई। इसलिए शायद हल किए गए प्रश्न को चिह्नित करने के लिए यह समझ में आता है ;-) – arie

+0

मेरी अज्ञानता को क्षमा करें, लेकिन मैंने आपका उत्तर 'स्वीकृत' के रूप में सेट किया है ... क्या इस धागे को बंद करने के लिए मुझे कुछ और करना है? धन्यवाद। –

संबंधित मुद्दे