2012-06-01 8 views
6

मेरे पास दो ऐप्स हैं जो दोनों एक ही डेटाबेस तक पहुंचते हैं। पहले ग्राहकों को टीसीपी के माध्यम से कनेक्ट किया जाता है और एसक्यूएलकेमी का उपयोग कर डीबी को लिखता है। दूसरा Django का उपयोग कर एक और अधिक सामान्य वेबपैप है। दोनों पढ़ने/लिखने की जरूरत है।एक ही डेटाबेस पर SQLAlchemy और Django ORM दोनों का उपयोग

मैं डेटाबेस का उपयोग परत को एकजुट करना चाहते हैं, लेकिन उठा सिर्फ SQLAlchemy या सिर्फ Django बदसूरत है क्योंकि:

  1. मैं प्रमाणन Django उपयोग करना चाहते हैं, अनुमतियों और शायद तृतीय पक्ष प्लगइन्स, जो की आवश्यकता होती है Django ORM (अगर मैं गलत हूं तो मुझे सही करें)।
  2. पहले ऐप के लिए, एसक्यूएलकेमी (अब तक) का उपयोग करके Django ऐप के बाहर Django ORM का उपयोग करने की कोशिश करने से कहीं अधिक सरल है - यह एक टीसीपी/आईपी सर्वर ऐप है, न कि एक HTTP/वेब ऐप।

क्या इन दोनों ORMs को एक ही डेटाबेस में मिलाकर कोई समस्या है?

किस प्रणाली (Django, SQLA) में मुझे मॉडल बनाना चाहिए, बनाम कुछ प्रकार के आत्मनिरीक्षण जैसे Django inspectdb?

+0

मुझे अभी मिला है [django-sqlalchemy] (https://code.google.com/p/django-sqlalchemy/wiki/Roadmap) प्रोजेक्ट। मुझे नहीं पता कि यह आपकी आवश्यकताओं के अनुरूप है, लेकिन यह निश्चित रूप से इसके बारे में पढ़ने के लायक है। – noisy

उत्तर

6

सबसे पहले - manage.py, WSGI हैंडलर और अन्य HTTP संबंधित सामग्री के बाहर Django ORM का उपयोग करना बहुत मुश्किल नहीं है। आप इसे किसी भी पायथन स्क्रिप्ट का उपयोग कर सकते हैं, लेकिन इसे कुछ प्रारंभिकरण (example) की आवश्यकता है।

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

अंत में

, जब से तुम दोनों पक्षों पर Django ORM उपयोग कर सकते हैं, और तुम सिर्फ करने के लिए है एक Django ORM उपयोग करें, क्योंकि प्लग इन की, मैं SQLA परित्याग करने के लिए सुझाव देते हैं। यह एक शक्तिशाली उपकरण है, बल्कि जटिल भी है। एक डेटाबेस पर दो अलग-अलग ओआरएम ऑपरेटिंग होने से भविष्य में अप्रत्याशित समस्याएं हो सकती हैं और आपके ऐप की जटिलता बढ़ जाती है, इसलिए रखरखाव करना मुश्किल होगा।

+1

धन्यवाद। मैं आपकी सलाह लेगा और एसक्यूएलए छोड़ दूंगा। – user1431368

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