मैंने अभी एक त्वरित खोज की है और कुछ भी प्रासंगिक नहीं आया है, इसलिए यहां जाता है।आईओएस ऐप अपडेट रोलिंग। डीबी अपडेट की आवश्यकता होने पर उपयोगकर्ता डेटा को बरकरार रखना
मैंने ऐप का पहला संस्करण जारी किया है। तब से मैंने SQLite डीबी में कुछ बदलाव किए हैं, अगली रिलीज में मुझे डीबी संरचना को अपडेट करने की आवश्यकता होगी लेकिन उपयोगकर्ता के डेटा को बनाए रखना होगा।
इसके लिए सबसे अच्छा तरीका क्या है? मैं वर्तमान में सोच रहा हूं कि ऐप अपडेट पर मैं कभी भी उपयोगकर्ता के (दस्तावेज़ फ़ोल्डर, बंडल में नहीं) डेटाबेस फ़ाइल को प्रतिस्थापित नहीं करूंगा बल्कि SQL क्वेरी का उपयोग करके इसकी संरचना को बदल दूंगा।
इसमें पिछली रिलीज के बाद डेटाबेस में किए गए परिवर्तनों को ट्रैक करना शामिल होगा। इन सभी परिवर्तनों को एसक्यूएल प्रश्नों में बदलें और डीबी को नवीनतम संशोधन में लाने के लिए इन्हें चलाएं। मुझे संस्करण संख्या को ट्रैक करने के लिए डेटाबेस में एक फ़ील्ड रखने की भी आवश्यकता होगी (सादगी के लिए ऐप संस्करण के साथ लाइन में रखें)।
जब तक विशिष्ट हुक नहीं होते हैं, तो अद्यतन के बाद पहली बार चलाने वाले प्रतिनिधि विधियों को मैं इस तर्क के लिए एपडिलेगेट की शुरुआत में कॉल करता हूं, इससे पहले कि कुछ और चल रहा हो।
ऐसा करने पर मैं "अपडेटिंग ऐप" या उपयोगकर्ता को कुछ प्रदर्शित करूंगा।
अगला बात, लाइन के साथ कहीं भी कोई त्रुटि होने पर और अपडेट विफल होने पर क्या होता है। डीबी पुराना हो जाएगा और ऐप ठीक से काम नहीं करेगा क्योंकि यह एक नए संस्करण की अपेक्षा करता है?
क्या मुझे इसे उपयोगकर्ता की डीबी फ़ाइल को हटाने और ऐप बंडल से नए संस्करण के साथ बदलने के लिए खुद को लेना चाहिए। या, क्या मुझे सिर्फ परीक्षण, परीक्षण, परीक्षण करना चाहिए जब तक कि मेरी तरफ सब कुछ ठोस न हो और यदि उपयोगकर्ता की तरफ कोई त्रुटि होती है तो यह कुछ और है, इस मामले में मैं इसके बारे में कुछ भी नहीं कर सकता केवल डेटा को त्याग देता हूं।
इस पर किसी भी विचार की सराहना की जाएगी। :)
धन्यवाद!
आवेदन शुरू करने पर डीबी संरचना को बदलना ठीक होना चाहिए। बस यह सुनिश्चित करें कि यह सही तरीके से किया गया है और उपयोगकर्ता को इस समय के दौरान अपने ऐप से बातचीत करने से रोकें (जो बहुत अधिक समय नहीं लेना चाहिए)। जैसा कि आपने पहले कहा था, संस्करण संख्या को डिफ़ॉल्ट में कहीं भी रखें और स्टार्टअप पर संस्करण संख्याओं की तुलना करें। – tilo
[एटी] जॉन टोप्ली, वर्तनी सुधार के लिए धन्यवाद। मुझे मूर्ख। ;) @ टिलो यही मैं अभी कर रहा हूं, यह एक अच्छा दृष्टिकोण की तरह लगता है। धन्यवाद। :) – conor