LimeSurvey 7 फ़ील्डनेम रीफ़ैक्टर
From LimeSurvey Manual
फ़ील्डनेम और प्रतिक्रिया तालिका रीफ़ैक्टर - LimeSurvey 7
LimeSurvey 7 में प्रतिक्रिया तालिकाओं और फ़ील्डनेम के निर्माण के तरीके में एक बड़ी सफ़ाई की गई है। यह अपडेट लंबे समय से चले आ रहे आंतरिक नामकरण नियमों को आधुनिक बनाता है और प्लगइन, इंटीग्रेशन और भविष्य के विकास के लिए अधिक पूर्वानुमेय और मज़बूत आधार तैयार करता है।
यह पेज प्रतिक्रिया तालिका और फ़ील्डनेम रीफ़ैक्टर पर केंद्रित है।
यह एक संरचनात्मक बदलाव है, इसलिए पुराने नामकरण पर निर्भर किसी भी कस्टम कार्य को अपडेट करने की आवश्यकता हो सकती है। यह पेज बताता है कि क्या बदलता है, सुरक्षित रूप से टेस्ट कैसे करें और अपग्रेड की तैयारी कैसे करें।
1. क्या बदलता है
1.1 नए तालिका नाम
LimeSurvey अब प्रतिक्रिया से संबंधित तालिकाओं के लिए एक समान नामकरण योजना का उपयोग करता है।
| पुराना तालिका नाम | नया तालिका नाम |
|---|---|
old_survey_<sid>_<timestamp>
|
old_responses_<sid>_<timestamp>
|
old_survey_<sid>_timings_<timestamp>
|
old_timings_<sid>_<timestamp>
|
survey_<sid>
|
responses_<sid>
|
survey_<sid>_timings
|
timings_<sid>
|
इन तालिकाओं का उपयोग करने वाली किसी भी SQL क्वेरी, इंटीग्रेशन या प्लगइन में बदलाव की आवश्यकता हो सकती है।
1.2 नई फ़ील्डनेम संरचना
फ़ील्डनेम अब एक पूर्वानुमेय और समान प्रारूप का पालन करते हैं। उदाहरण:
Q<questionId>- मूल प्रश्नQ<questionId>_S<subquestionId>- उप-प्रश्नQ<questionId>_C<suffix>- टिप्पणी या अन्य फ़ील्ड- रैंकिंग फ़ील्ड:
Q<questionId>_S<subquestionId>- रैंकिंग आइटम अब उप-प्रश्न हैं (देखें 1.3) - टाइमिंग फ़ील्ड: संदर्भ के अनुसार प्रश्न-स्तर या समूह-स्तर
यह पुराने sidXgidXqid आधारित नामकरण का स्थान लेता है।
1.3 रैंकिंग प्रश्न
रैंकिंग प्रश्न अब अन्य उप-प्रश्न-आधारित प्रश्न प्रकारों की तरह काम करते हैं:
- आइटम उप-प्रश्न हैं। रैंक किए जा सकने वाले आइटम उप-प्रश्न (प्रकार
R) के रूप में संग्रहीत होते हैं, उत्तर विकल्पों के रूप में नहीं। - फ़ील्डनेम मानक उप-प्रश्न प्रारूप
Q<questionId>_S<subquestionId>का उपयोग करते हैं (प्रत्येक रैंक किए गए आइटम के लिए एक)। - प्रतिक्रियाएँ एकल JSON कॉलम
Q<questionId>में संग्रहीत होती हैं, आइटम कोड की क्रमबद्ध सरणी के रूप में, जहाँ स्थिति = रैंक। उदाहरण:["3", "1", "2"]
2. यह क्यों महत्वपूर्ण है
यह सफ़ाई उन नामकरण पैटर्न को संबोधित करती है जो कई वर्षों से औपचारिक रूप से परिभाषित और उपयोग किए जा रहे थे, और उन्हें एक समान और मज़बूत संरचना में लाती है जिस पर हम भविष्य के लिए निर्माण कर सकते हैं।
इस तरह के संरचनात्मक बदलाव शायद ही कभी सरल होते हैं। वे सिस्टम के उन हिस्सों को छूते हैं जिन पर कई प्लगइन और इंटीग्रेशन निर्भर करते हैं, इसीलिए जटिलता के कारण उन्हें अक्सर टाल दिया जाता है। लेकिन दीर्घकालिक स्थिरता के लिए चीज़ों को समान और पूर्वानुमेय बनाए रखना महत्वपूर्ण है।
इसे अभी संबोधित करके, हम LimeSurvey को अधिक साफ़ और विस्तार करने में आसान बनाते हैं, भले ही यह बदलाव सतह पर ज़्यादातर दिखाई न दे।
3. नए फ़ील्डनेम का पूर्वावलोकन कैसे करें
यह देखने के लिए कि कोई मौजूदा फ़ील्डनेम नई LS7 संरचना में कैसे मैप होगा, आप निम्नलिखित चरण अपना सकते हैं:
- डेटाबेस का बैकअप लें, क्योंकि बदलाव पूर्ववत नहीं किए जा सकते और यदि कुछ गलत हो जाए, तो बदलाव से पहले का डेटाबेस पुनर्प्राप्त करने के लिए उपयोगी होगा
- develop-major ब्रांच चेकआउट करें:
git checkout develop-major
या प्रोजेक्ट को सीधे इस ब्रांच पर क्लोन/डाउनलोड करें: https://github.com/LimeSurvey/LimeSurvey/tree/develop-major - बदलाव की स्क्रिप्ट चलाने के लिए कोई एडमिन पेज लोड करें
- बदलाव की स्क्रिप्ट के निष्पादन के दौरान मिलने वाली किसी भी त्रुटि की रिपोर्ट करें
- नए तालिका नामों और फ़ील्डनेम का अध्ययन करें
- अपने प्लगइन/थीम टेस्ट करें और तालिका नामों और/या फ़ील्डनेम से संबंधित त्रुटियाँ ठीक करें
पुराने फ़ील्डनेम को नए फ़ील्डनेम में बदलने के लिए उपयोग किया जाने वाला फ़ंक्शन निम्नलिखित है:
getFieldName($tableName, $fieldName, $questions, $sid, $gid, $cd)
पैरामीटर
- $tableName - मूल तालिका नाम
- $fieldName - मूल फ़ील्डनेम
- $questions - मूल प्रश्न और उसके उप-प्रश्न
- $sid - सर्वेक्षण का आईडी
- $gid - समूह आईडी
- $cd - क्या शर्त डिज़ाइनर लॉजिक लागू होता है
परिणाम
यह फ़ंक्शन उस प्रतिक्रिया फ़ील्ड के लिए नया LS7 फ़ील्डनेम लौटाता है।
4. बदलावों का सुरक्षित रूप से परीक्षण कैसे करें
प्रोडक्शन सिस्टम को अपग्रेड करने से पहले LS7 को एक समर्पित वातावरण में टेस्ट करने की दृढ़ता से अनुशंसा की जाती है।
4.1 LS7 को अलग वातावरण में इंस्टॉल करें
नवीनतम LS7 यहाँ से डाउनलोड करें:
https://community.limesurvey.org
इसे अपने मौजूदा सेटअप से अलग इंस्टॉल करें।
4.2 अपनी मौजूदा सामग्री इंपोर्ट करें
इनका उपयोग करके टेस्ट करें:
- सर्वेक्षण
- सर्वेक्षण थीम
- एडमिन थीम
- प्रश्न थीम
- प्लगइन
- कस्टम JavaScript
- आपके द्वारा बनाए गए कोई भी कस्टम इंटीग्रेशन
जाँच करें कि नई तालिका और फ़ील्डनेम नामकरण के साथ सब कुछ अपेक्षित रूप से काम कर रहा है या नहीं। पुराने नामकरण पर निर्भर किसी भी कोड को अपडेट करें।
4.3 माइग्रेशन कैसे ट्रिगर करें?
यदि आप अपने टेस्ट इंस्टॉलेशन में माइग्रेशन लॉजिक का पूर्वावलोकन करना चाहते हैं:
- अपने डेटाबेस का बैकअप लें।
- LS7 संस्करण इंस्टॉल करें।
- माइग्रेशन स्क्रिप्ट चलाने के लिए कोई भी एडमिन पेज लोड करें।
- तालिका और फ़ील्डनेम में हुए बदलावों की समीक्षा करें।
- एप्लिकेशन का परीक्षण करें।
- यदि आवश्यक हो तो कस्टम कोड अपडेट करें।
4.4 समस्याओं की रिपोर्ट करें
इतनी जल्दी परीक्षण करने के लिए धन्यवाद। यदि आपको कोर में कुछ भी गड़बड़ लगे, तो कृपया उसकी रिपोर्ट करें ताकि हम उसे जल्द से जल्द ठीक कर सकें।
5. किन चीज़ों को अपडेट की आवश्यकता हो सकती है
निम्नलिखित में बदलाव की आवश्यकता हो सकती है:
- पुराने फ़ील्डनेम या तालिका नामों का उपयोग करने वाले प्लगइन
- आपके द्वारा बनाए गए कोई भी कस्टम इंटीग्रेशन
- फ़ील्डनेम आधारित सिलेक्टर का उपयोग करने वाली JavaScript
- प्रतिक्रिया से संबंधित पहचानकर्ताओं के साथ इंटरैक्ट करने वाली कस्टम थीम
- पिछली नामकरण योजना पर निर्भर इंटीग्रेशन
- सर्वेक्षण, थीम, प्रश्न थीम आदि जैसे पुराने एक्सपोर्ट को इम्पोर्ट करना
यह अपेक्षित है और अपग्रेड प्रक्रिया का हिस्सा है।
6. सारांश
- LS7 प्रतिक्रिया तालिका और फ़ील्डनेम नामकरण की पूरी तरह सफ़ाई प्रस्तुत करता है
- यह LS7 का प्रमुख संरचनात्मक बैकएंड बदलाव है
- अलग वातावरण में परीक्षण करना दृढ़ता से अनुशंसित है
getFieldName()भविष्य के नामकरण का पूर्वावलोकन करने में मदद करता है- जहाँ आवश्यक हो, कस्टम कोड अपडेट करें
- अंतिम रिलीज़ को स्थिर बनाने में मदद के लिए समस्याओं की रिपोर्ट जल्दी करें