2016-01-29 5 views
5

मेरे पास एक स्थिरता seed_data.json है जिस पर मेरा प्रारंभिक डेटा है।Django: डेटा अपडेट करने के लिए लोडडाटा

कभी-कभी मैं इस फिक्स्चर में नया डेटा जोड़ता हूं और इसे पुनः लोड करता हूं, जो मेरे डेटा को सही तरीके से अपडेट करता है।

हालांकि, अब मैं इससे कुछ डेटा निकालना चाहता हूं। तो मैं अपने seed_data.json संशोधित, उदाहरण के लिए, मैं ऐसा ही कुछ था:

{"fields": {"name": "Field 0"},"model": "catalog.product","pk": 1}, 
{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 2}, 
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 3}, 
# ... 

कि बन गया:

{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 1}, 
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 2}, 
# ... 

लेकिन मैं हो रही है:

django.db.utils.IntegrityError: Problem installing fixture .....\seed_data.json

Could not load catalog.Product(pk=2): column name is not unique

इसलिए कुछ डेटा जोड़ने पर कोई समस्या नहीं है, लेकिन कुछ को हटाने का प्रयास करते समय प्राथमिक कुंजी के साथ संघर्ष होते हैं।

मैं जो कुछ करने की कोशिश कर रहा हूं उसे कैसे प्राप्त कर सकता हूं?

उत्तर

3

फिक्स्चर केवल परीक्षण के दौरान पूरी तरह से नए डेटाबेस उदाहरणों के लिए प्रारंभिक डेटा के लिए प्रारंभिक डेटा के लिए हैं। मौजूदा डेटा उपयोग माइग्रेशन को संशोधित करने के लिए।

+0

SO, वास्तव में एप्लिकेशन के प्रारंभिक डेटा को बदलने के लिए, मुझे अपना डेटाबेस मिटा देना होगा? – Ellone

+0

हां बिल्कुल। यही कारण है कि इसे "प्रारंभिक" कहा जाता है। –

+0

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

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