2008-10-16 11 views
6

एक डीजेंगो एप्लिकेशन में मौजूदा ड्रूपल साइट को बंद करने का सबसे अच्छा तरीका क्या होगा? मेरे पास लगभग 500 पेज (ज्यादातर पुस्तकें मॉड्यूल) और लगभग 50 ब्लॉग पोस्ट हैं। मैं किसी तीसरे पक्ष के मॉड्यूल का उपयोग नहीं कर रहा हूं। मैं वर्तमान यूआरएलएस (एसईओ प्रयोजनों के लिए) रखना चाहता हूं और Django में डेटाबेस माइग्रेट करना चाहता हूं। मैं एक साधारण ब्लॉग एप्लिकेशन तैयार करूंगा, इसलिए ब्लॉग पोस्ट माइग्रेट करना ठीक होना चाहिए। Django के साथ 500+ पृष्ठों की सेवा करने का सबसे अच्छा तरीका क्या होगा? मैं नए पृष्ठों को संपादित/जोड़ने के लिए व्यवस्थापक का उपयोग करना चाहता हूं।Drupal से Django तक पोर्ट कैसे करें?

+0

देखें http://stackoverflow.com/questions/199556/how-can-i-port-a-legacy-javaj2ee-website-to-a-modern-scripting-language-phppyth –

+0

धन्यवाद, मुझे याद आया एक – Boolean

उत्तर

12

सभी Django विकास समान है, और आपका पैटर्न पैटर्न में फिट होगा।

  1. अपनी पुस्तकों और ब्लॉग पोस्ट के लिए Django मॉडल को परिभाषित करें।

  2. यूनिट परीक्षण जो Django की अंतर्निहित परीक्षण क्षमताओं का उपयोग कर मॉडल करता है।

  3. अपने विरासत डेटा को Django में लोड करने के लिए कुछ छोटी उपयोगिताएं लिखें। इस बिंदु पर, आपको पता चलेगा कि आपका Django मॉडल सही नहीं है। अच्छा। इसे ठीक करो। परीक्षण ठीक करें। भार दोबारा करें।

  4. अपने मॉडल में डिफ़ॉल्ट व्यवस्थापक इंटरफ़ेस कॉन्फ़िगर करें। इस बिंदु पर, आप व्यवस्थापक इंटरफेस tweaking समय व्यतीत करेंगे। आपको पता चलेगा कि आपका डेटा मॉडल गलत है। कौन - सी एक अच्छी बात है। अपने मॉडल को ठीक करें। अपने परीक्षणों को ठीक करें। अपने भार ठीक करें।

  5. अब आपका डेटा सही है, तो आप अपने विरासत पृष्ठों से टेम्पलेट बना सकते हैं।

  6. यूआरएल मैपिंग बनाएं और डेटा मॉडल से टेम्पलेट्स को पॉप्युलेट करने के लिए फ़ंक्शंस देखें।

डेटा मॉडल को सही करने के लिए समय निकालें। यह वास्तव में मायने रखता है, क्योंकि यदि आपका डेटा मॉडल ठोस है तो बाकी सब कुछ बहुत आसान है।

+0

धन्यवाद, मेरे दिमाग में अब एक बेहतर तस्वीर है। – Boolean

3

लीजसी डेटाबेस के साथ काम करने वाले Django मॉडल लिखना संभव हो सकता है (मैंने इसे पहले किया है; manage.py inspectdb पर दस्तावेज़ देखें)।

हालांकि, मैं उपरोक्त सलाह का पालन करता हूं और Django सम्मेलनों का उपयोग करके एक स्वच्छ डेटाबेस तैयार करता हूं, और फिर डेटा को माइग्रेट करता हूं। मैं आमतौर पर माइग्रेशन स्क्रिप्ट लिखता हूं जो Django के माध्यम से नए डेटाबेस को लिखता है और कच्चे पायथन डीबी एपीआई का उपयोग करके पुराना पढ़ता है (जबकि Django को multiple databases simultaneously पर भी टाई करना संभव है)।

मैं भी Django के लिए उपलब्ध ब्लॉगिंग ऐप्स पर एक नज़र डालने का सुझाव देता हूं। यदि Pinax में शामिल एक व्यक्ति आपकी ज़रूरत के अनुरूप है, तो आगे बढ़ें और पिनाक्स को शुरुआती बिंदु के रूप में उपयोग करें।

0

S.Lott answer अभी भी साल के बाद, मैं उपकरण और प्रारूप काम करने के लिए के साथ विश्लेषण पूरा करने के लिए कोशिश मान्य है।

अब से लेकिन बहुत ही अनुरोध मैं Views Datasource के लिए जाना JSON प्रारूप के रूप में चुनने के साथ वहाँ से बाहर कई Drupal निर्यात उपकरण हैं। यह मॉड्यूल बहुत ठोस है और ड्रूपल के अंतिम संस्करण के लिए उपलब्ध है। JSON प्रारूप दोनों पार्सिंग और एन्कोडिंग में बहुत तेज है और इसे पढ़ने में आसान है और बहुत पाइथन-अनुकूल (import json)।

दृश्य डेटासेट का उपयोग करके आप नोड आईडी (निड) द्वारा क्रमबद्ध नोड दृश्य बना सकते हैं, प्रति पृष्ठ तत्वों की एक सीमित संख्या दिखा सकते हैं, एक दृश्य पथ कॉन्फ़िगर कर सकते हैं, इसमें एक फ़िल्टर पहचानकर्ता जोड़ सकते हैं और सभी को पढ़ने के लिए इसे पास कर सकते हैं जब तक आप एक खाली JSON प्रतिक्रिया प्राप्त नहीं करते हैं तब तक तत्व।

Django में आयात करते समय आपके पास loaddata to load fixtures से शुरू होने वाले टूल का एक विस्तृत सेट भी है। दृश्य डेटासोर्स ने जेएसओएन निर्यात किया लेकिन यह प्रारूपित नहीं है क्योंकि Django फिक्स्चर की अपेक्षा करता है: आप आयात करने के लिए custom admin command लिख सकते हैं, जहां आप आयात प्रवाह का पूर्ण नियंत्रण प्राप्त कर सकते हैं।

आप अपने आदेश को nid = 0 को तर्क के रूप में गुजरने के लिए शुरू कर सकते हैं और फिर प्रक्रिया को पढ़ने, आयात करने और फिर अगले पृष्ठ से डेटा लाने के लिए पिछले HTTP अनुरोध में पढ़ा गया अंतिम निड पास कर सकते हैं। आप दृश्य पर पथ तक पहुंच प्रतिबंधित भी कर सकते हैं लेकिन आपको आयात पक्ष पर अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता है।

प्रदर्शन के बारे में

, बस उदाहरण के लिए मैं पार्स और एक Django 1.8 कस्टम व्यवस्थापक आदेश के माध्यम से कम से कम 10 मिनट में 15.000+ नोड्स आयातित एक 8 कोर/8 जीबी लिनक्स आभासी मशीन पर और PostgreSQL डीबीएमएस के रूप में, में सफलता और त्रुटि जानकारी लॉग इन करने प्रत्येक नोड के लिए एक कस्टम मॉडल।

विस्तृत जानकारी के लिए मैंने इन दो प्लेटफार्मों के बीच आयात/निर्यात के लिए मूल बातें हैं, मैंने सभी major steps for export from Drupal and then import to Django in this guide का वर्णन किया है।

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