2010-10-30 7 views
7

से पहले एक स्थिरता लोड हो रहा है मैंने अपना खुद का उपयोगकर्ता मॉडल बनाने की गलती की है और मैं पुनर्प्राप्त करने की कोशिश कर रहा हूं।दक्षिण माइग्रेशन रन

मैं एक दक्षिण प्रवास कि प्रतियां मेरे पुराने उपयोगकर्ता मॉडल और django.contrib.auth.models.User मॉडल बनाता बना लिया है। यह सुनिश्चित करने के लिए कि मेरे वर्तमान उपयोगकर्ता अंधेरे में नहीं निकले हैं, मैंने यह सुनिश्चित करने के लिए सभी चीजों को उचित रूप से परिवर्तित करने के लिए unittests का एक गुच्छा बनाया है।

तो, मुझे दक्षिण प्रवासन का परीक्षण करने और यह देखने के लिए कि क्या यह काम करता है या नहीं। ऐसा करने के लिए माइग्रेशन रन से पहले मुझे पुराने उपयोगकर्ता प्रकार के डेटा को लोड करने की आवश्यकता है। मैं उसको कैसे करू?

उत्तर

7

जब परीक्षण सूट python manage.py test someapp के माध्यम से चलाया जाता है, तो पहले django परीक्षण डेटाबेस बनाता है, फिर क्रम में सभी माइग्रेशन लागू करता है, फिर परीक्षण के मामलों को चलाता है। तो यदि लक्ष्य माइग्रेशन का परीक्षण करना है, तो आपको उस माइग्रेशन से पहले स्थिरता डेटा लोड करना होगा।

आप अपने प्रवास के लिए एक लाइन या दो लोडिंग स्थिरता सिर्फ परीक्षण के लिए अपने मॉडल में परिवर्तन लागू होने वाला जोड़ने तो निकाल सकते हैं।

def forwards(self, orm): 
    from django.core import management 
    management.call_command('loaddata', 'myfixture.json') 
    ... your migration 

भी, आप कुछ बना Django सेटिंग पर शर्त जोड़ सकते हैं, तो आप बाद में कोड को संपादित करने की ज़रूरत नहीं होगी।

+0

ध्यान दें कि 'प्रारंभिक_डेटा' को उस तरह से लोड करना एक बुरा विचार है: कुछ समय बाद, आप 'प्रारंभिक_डेटा.जेसन' में ऑब्जेक्ट्स के नए उदाहरण जोड़ना समाप्त कर देंगे जो इसके मॉडल माइग्रेशन से पहले लोड होने का जोखिम है। परीक्षण और अस्वीकृत;)। –

0

डेटा माइग्रेशन कहा जाता है: http://south.aeracode.org/docs/tutorial/part3.html का आनंद लें!

+0

मैं पहले ही डेटा माइग्रेशन का उपयोग कर रहा हूं। सवाल यह है कि मैं इसका परीक्षण कैसे करूं? – Gezim

+0

http://south.aeracode.org/docs/fixtures.html#initial-data – diegueus9

+0

http://south.aeracode.org/docs/signals.html#pre- माइग्रेट – diegueus9