मैं एक नए प्रश्न के लिए इस उत्तर को शामिल कर रहा हूं जिसे एक डुप्लिकेट के रूप में चिह्नित किया गया था।
मुझे एक बार दो प्रोडक्शन डेटाबेस की तुलना करनी पड़ी और उनके बीच कोई स्कीमा अंतर पता चला। ब्याज की एकमात्र वस्तुएं टेबल थीं जिन्हें जोड़ा या गिरा दिया गया था और जो कॉलम जोड़े गए थे, हटा दिए गए थे, या बदल दिए गए थे। मेरे पास अब मेरे द्वारा विकसित एसक्यूएल स्क्रिप्ट नहीं हैं, लेकिन सामान्य रणनीति क्या है। और डेटाबेस SQL सर्वर नहीं था, लेकिन मुझे लगता है कि एक ही रणनीति लागू होती है।
सबसे पहले, मैंने बनाया कि क्या मेटाडेटाबेस के रूप में सबसे अच्छा वर्णन किया जा सकता है। इस डेटाबेस के उपयोगकर्ता तालिकाओं में उत्पादन डेटाबेस के सिस्टम तालिकाओं से कॉपी किए गए डेटा विवरण शामिल थे। टेबल नेम, कॉलम नाम, डेटा टाइप और प्रिसिजन जैसी चीजें। एक और आइटम, डेटाबेस का नाम था, जो उत्पादन डेटाबेस में से किसी में भी मौजूद नहीं था।
इसके बाद, मैंने स्क्रिप्ट्स का विकास किया, जो मेटाडेटाबेस के उपयोगकर्ता तालिकाओं में आवेषण के साथ उत्पादन डेटाबेस के सिस्टम तालिकाओं से चयन करता है।
अंत में, मैंने एक डेटाबेस में मौजूद तालिकाओं को खोजने के लिए क्वेरी का विकास किया, लेकिन दूसरे का नहीं, और दोनों डेटाबेस में तालिकाओं से स्तंभ जो केवल एक डेटाबेस में थे, और दो डेटाबेस के बीच असंगत परिभाषा वाले कॉलम।
लगभग 100 तालिकाओं और 600 स्तंभों में से, मैंने कुछ असंगतताएं पाईं, और एक स्तंभ जिसे एक डेटाबेस में एक अस्थायी बिंदु और दूसरे में पूर्णांक के रूप में परिभाषित किया गया था। यह आखिरी एक भगवान की तरह निकला, क्योंकि इसने एक ऐसी समस्या का खुलासा किया जो सालों से डेटाबेस में से एक की दुर्दशा कर रही थी।
मेटाडेटाबेस के मॉडल को सिस्टम तालिकाओं द्वारा प्रश्न में सुझाया गया था। प्रश्नों का निर्माण कठिन नहीं था, समूह के चारों ओर घूमना और गणना (डेटाबेस नाम) = 1 होना।
आपके मामले में, 700 उत्पादन डेटाबेसों के साथ, आप तुलना करने के लिए सिर्फ दो डेटाबेसों के साथ पहले दो चरणों को और अधिक स्वचालित करना चाह सकते हैं। लेकिन विचार समान है।