एक चीज़ जो मुझे db4o जैसे किसी ऑब्जेक्ट डेटाबेस का उपयोग करने के बारे में बहुत उलझन में मिली है, यह है कि आप जटिल माइग्रेशन को कैसे संभालना चाहते हैं जो आमतौर पर SQL/PL-SQL द्वारा संभाला जाएगा।ऑब्जेक्ट डेटाबेस में डेटा रखरखाव को संभालना जैसे db4o
उदाहरण के लिए कल्पना करें कि आपके पास my_users नामक एक रिलेशनल डेटाबेस में एक टेबल थी। मूल रूप से आपके पास "full_name" नामक एक कॉलम था, अब आपका सॉफ़्टवेयर वी 2 में है, आप इस कॉलम को हटाना चाहते हैं, रिक्त स्थान पर पूर्ण नाम विभाजित करें और पहले भाग को "first_name" नामक कॉलम में रखें और दूसरा कॉलम में रखें last_name नाम दिया गया। एसक्यूएल में मैं बस "first_name" और "second_name" कॉलम को पॉप्युलेट करता हूं, फिर "full_name" नामक मूल कॉलम को हटा देता हूं।
मैं db4o जैसे कुछ में ऐसा कैसे करूं? क्या मैं जावा प्रोग्राम लिखता हूं जो स्क्रिप्ट्स User.class की सभी ऑब्जेक्ट्स को देखता है, first_name और last_name सेट करते समय पूर्ण_नाम को शून्य पर सेट करता है? जब मैं अपना अगला svn प्रतिबद्ध करता हूं तो पूर्ण_नाम से संबंधित कोई फ़ील्ड/बीन-प्रॉपर्टी नहीं होगी, क्या यह एक समस्या होगी? ऐसा लगता है कि इसे एक उत्पादन अनुप्रयोग में उपयोग करने के लिए प्रतीत होता है जहां मेरा "स्कीमा" बदलता है, मैं संस्करण x से संस्करण x + 1 में डेटा माइग्रेट करने के लिए एक स्क्रिप्ट लिखना चाहता हूं और फिर संस्करण x + 2 में वास्तव में उन गुणों को हटा सकता हूं जिन्हें मैं कोशिश कर रहा हूं संस्करण x + 1 के लिए छुटकारा पाएं क्योंकि मैं उन गुणों को संशोधित करने के लिए जावा स्क्रिप्ट नहीं लिख सकता जो अब मेरे प्रकार का हिस्सा नहीं हैं।
ऐसा लगता है कि समस्या का एक हिस्सा यह है कि एक आरडीबीएमएस हल करता है कि आप एक साधारण केस असंवेदनशील स्ट्रिंग-आधारित नाम के आधार पर किस ऑब्जेक्ट का जिक्र कर रहे हैं, जावा टाइपिंग जैसी भाषा में इससे अधिक जटिल है, आप इसका उल्लेख नहीं कर सकते संपत्ति अगर गेटटर/सेटर/फ़ील्ड रनटाइम पर लोड की गई कक्षा का सदस्य नहीं है, तो आपको अनिवार्य रूप से उसी कोड में अपने कोड के 2 संस्करणों की आवश्यकता होती है (हम्म, कस्टम क्लासलोडर दर्द की तरह ध्वनि), आपके पास नया संस्करण है संग्रहीत कक्षा किसी अन्य पैकेज से संबंधित है (गन्दा लगता है), या मैंने वर्णित संस्करण x + 1 x + 2 रणनीति का उपयोग किया है (बहुत अधिक योजना की आवश्यकता है)। शायद कुछ स्पष्ट समाधान है जो मैंने डीबी 4o दस्तावेजों से कभी नहीं लिया है।
कोई विचार? उम्मीद है कि यह कुछ समझ में आता है।