Django 1.7 इससे पहले कि मैं सेटिंग्स में एक प्रति परियोजना fixtures
निर्देशिका परिभाषित करने के लिए प्रयोग किया है: मेरी initial_data.json
स्थिरता डिफ़ॉल्ट भंडारण जगहDjango में जुड़नार initial_data प्रति-प्रोजेक्ट बनाने के लिए कैसे 1.7+
FIXTURE_DIRS = ('myproject/fixtures',)
और उस का उपयोग पूरे परियोजना के लिए समूह आवश्यक है। यह मेरे लिए अच्छा काम कर रहा है क्योंकि मैं प्रति-परियोजना डेटा को ऐप-विशिष्ट डेटा से अलग करके डिज़ाइन को साफ रख सकता हूं।
अब Django 1.7 के साथ, initial_data
जुड़नार पदावनत किया गया है, suggesting एप्लिकेशन की स्कीमा माइग्रेशन के साथ data migrations एक साथ शामिल करने के लिए; ग्लोबल प्रति-प्रोजेक्ट प्रारंभिक डेटा के लिए कोई स्पष्ट विकल्प नहीं छोड़ रहा है।
इसके अलावा नई migrations framework सभी लीगेसी प्रारंभिक डेटा जुड़नार (django.contrib.auth
एप्लिकेशन सहित) अनुरूप ऐप्स के लिए से पहले क्रियान्वित माइग्रेशन स्थापित करता है। यह व्यवहार विफल स्थापना में डिफ़ॉल्ट समूह वाले मेरे समूह का कारण बनता है, क्योंकि auth_group
तालिका अभी तक डीबी में मौजूद नहीं है।
के बाद सभी माइग्रेशन, या कम से कम एथ एप माइग्रेशन के बाद (सुन्दरता से) फिक्स्चर कैसे चलते हैं, इस पर कोई सुझाव? या इस समस्या को हल करने के लिए कोई अन्य विचार? मुझे प्रारंभिक डेटा प्रदान करने के लिए फिक्स्चर एक शानदार तरीका मिलते हैं और स्वचालित स्थापना के लिए उन्हें घोषित करने का एक सरल और साफ तरीका चाहते हैं। नया RunPython बहुत बोझिल है और मैं इसे अधिकांश उद्देश्यों के लिए एक ओवरकिल मानता हूं; और ऐसा लगता है कि प्रति-एप माइग्रेशन के लिए ही उपलब्ध है।
चूंकि इसे बहिष्कृत किया गया है, यह शायद थोड़ा अजीब होगा। एक विकल्प केवल प्रारंभिक डेटा लोड करने के लिए एक न्यूनतम ऐप बनाना, माइग्रेशन बनाना और रनपीथन में, जो भी काम करता है, Django फिक्स्चर लोड करने के लिए उपयोग करता है। इस तरह आप अपने माइग्रेशन में निर्भरता भी निर्दिष्ट कर सकते हैं। यद्यपि Django स्रोत कोड में शायद कुछ गंभीर खुदाई शामिल होगी। –
हाँ, मैंने पिछले प्रकार के * मेटा * एप्लिकेशन को अंतिम उपाय के रूप में बनाने और वहां माइग्रेशन बनाने के बारे में हालांकि (लेकिन यह अभी भी बदसूरत है) बनाने के बारे में है। आश्चर्य है कि नया Django कम से कम ** घोषणात्मक रूप से ** मानक माइग्रेशन के साथ लोड होने के लिए निर्दिष्ट फिक्स्चर का मानक तरीका प्रदान नहीं करता है। –
कहीं भी SO पर यह पूर्व -77 जेसन/एक्सएमएल स्थिरता फ़ाइलों का पुन: उपयोग करने का सुझाव दिया गया था। आपके पास केवल एक डेटा माइग्रेशन के साथ एक न्यूनतम ऐप होगा, फिर अपने मौजूदा जेसन/एक्सएमएल फिक्स्चर को पार्स करें और उनसे रिकॉर्ड बनाएं। यह वही होना चाहिए जो पूर्व-1.7 वैसे भी हुआ था। –