2011-05-19 13 views
14

में Google ऐप इंजन संस्करणिंग Google ऐप इंजन में ऐप संस्करणों की अवधारणा है। यानी, आपके पास अपने ऐप के कई संस्करण एक साथ चल रहे हैं और अलग-अलग सबडोमेन पर पहुंच योग्य हो सकते हैं। उदाहरण के लिए: http://1.my-app-name.appspot.com, http://2.my-app-name.appspot.comडेटास्टोर

ऐप के कौन से पहलू वास्तव में "संस्करण" हैं? क्या यह केवल पायथन + स्टेटिक फाइल कोडबेस है? क्या डेटास्टोर में "संस्करण" की अवधारणा है? यदि नहीं, तो जब मैं Google App Engine मॉडल की परिभाषा को अपडेट करता हूं तो क्या होता है?

धन्यवाद!

उत्तर

25

सही, ऐप संस्करण केवल आपकी अपलोड की गई फ़ाइलों को संदर्भित करता है। दोनों संस्करण एक ही डेटास्टोर के साथ उपयोग करते हैं।

ध्यान दें कि डेटास्टोर स्वयं स्कीमा-कम है। प्रत्येक इकाई कुंजी/मूल्य जोड़े का एक स्वतंत्र संग्रह है। उसी तरह की दो इकाइयों को संपत्तियों, या संपत्ति प्रकारों के समान सेट को साझा करने की आवश्यकता नहीं है। डीबी.मोडेल डेटास्टोर के चारों ओर एक ओआरएम अबास्ट्रक्शन प्रदान करता है, लेकिन किसी भी प्रकार की वैश्विक स्कीमा को परिभाषित या लागू नहीं करता है।

जबकि डेटास्टोर संस्करणित नहीं है, यह namespacing का समर्थन करता है। आप अपने एप्लिकेशन के प्रत्येक मुख्य संस्करण के लिए एक नया डेटासंग्रह खंड चाहते हैं, आप ऐसा कर सकते हैं:

import os 
from google.appengine.api import namespace_manager 

namespace_manager.set_namespace(os.environ['CURRENT_VERSION_ID']) 
+4

शायद संस्करण स्ट्रिंग को विभाजित करना चाहिए और प्रमुख संस्करण मान के आधार पर नामस्थान बनाना चाहिए। 'major_ver, minor_ver = os.en वातावरण.get ('CURRENT_VERSION_ID')। rsplit ('।', 1); namespace_manager.set_namespace (major_ver) 'प्रत्येक तैनाती के साथ मामूली संस्करण मान बदलता है, भले ही आप प्रमुख संस्करण मान नहीं बदलते हैं। – Calvin

+0

अच्छी कॉल, किसी कारण से मैं सोच रहा था कि यह केवल प्रमुख संस्करण लौटा। –

+1

यह बहुत अच्छी जानकारी है, धन्यवाद! –

7

डेटास्टोर में संस्करणों की कोई अवधारणा नहीं है।

जब आप एक मॉडल परिभाषा अद्यतन करते हैं, तो भविष्य में जो भी संस्थाएं आप बनाते हैं, वे नए प्रकार के होंगे, और पुराने पुराने प्रकार के होंगे। यदि आपका कोड इन परिवर्तनों से अवगत नहीं है तो यह अक्सर रनटाइम त्रुटियों की ओर जाता है।

+1

इसके अलावा, अनुक्रमित जाएगा (अंततः) को प्रतिबिंबित सबसे हाल ही में index.yaml –

+0

अपने जवाब के लिए धन्यवाद की गई! –

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