ऐसे माइग्रेशन के लिए मैं आमतौर पर जो करता हूं वह दुगना होता है:
- MySQL से संपूर्ण डेटाबेस परिभाषा निकालें और इसे PostgreSQL सिंटैक्स में अनुकूलित करें।
- डेटाबेस परिभाषा पर जाएं और PostgreSQL में कार्यक्षमता का लाभ उठाने के लिए इसे रूपांतरित करें जो MySQL में मौजूद नहीं है।
फिर रूपांतरण करें, और जिस भाषा में आप सबसे अधिक सहज हों उसमें एक प्रोग्राम लिखें जो निम्नलिखित को पूरा करता है:
- MySQL डेटाबेस से डेटा पढ़ता है।
- PostgreSQL डेटाबेस में संग्रहीत किए जाने वाले डेटा पर जो भी परिवर्तन आवश्यक है वह करता है।
- अब रूपांतरित डेटा को PostgreSQL डेटाबेस में सहेजता है।
PostgreSQL की सुविधाओं का लाभ उठाने के लिए तालिकाओं को फिर से डिज़ाइन करें।
यदि आप कुछ ऐसा करते हैं जैसे sed
. का उपयोग करें एसक्यूएल डंप को एक प्रारूप से दूसरे प्रारूप में बदलने के लिए स्क्रिप्ट, आप केवल एक पोस्टग्रेएसक्यूएल सर्वर में एक MySQL डेटाबेस डाल रहे हैं। आप ऐसा कर सकते हैं, और ऐसा करने से अभी भी कुछ लाभ होगा, लेकिन अगर आप माइग्रेट करने जा रहे हैं, तो पूरी तरह से माइग्रेट करें।
इसमें थोड़ा अधिक समय खर्च करना होगा, लेकिन मुझे अभी तक ऐसी स्थिति का सामना नहीं करना पड़ा है जहां यह इसके लायक नहीं है।