इस प्रोजेक्ट के बारे में

pgfathom PostgreSQL स्कीमा पुरातत्व के लिए एक रीड-ओनली कमांड-लाइन उपयोगिता है। यह कैटलॉग, व्यू और फ़ंक्शंस से उपयोग के साक्ष्य, नामकरण सम्मेलनों और प्लानर आँकड़ों की जांच करके उन संबंधों को ढूंढता है जिन्हें फॉरेन कीज़ के रूप में घोषित नहीं किया गया है। यह टूल डेटाबेस में कभी कुछ नहीं लिखता है और इसे प्रोडक्शन सिस्टम पर सुरक्षित संचालन के लिए डिज़ाइन किया गया है। यह उन समस्याओं को हल करता है जहाँ पुराने PostgreSQL डेटाबेस में छिपी हुई रेफरेंशियल इंटीग्रिटी होती है—ऐसे कॉलम जो अन्य टेबल की ओर इशारा करते हैं लेकिन जिनमें बाधाओं (constraints) का अभाव होता है। pgfathom क्या करता है: * डिस्कवर मोड में, यह निष्कर्षों (ब्रोकन, कन्फर्मड, वीक, अनवैलिडेटेड, डिटेक्टेड) के साथ एक टर्मिनल रिपोर्ट, एक वर्शन्ड JSON मॉडल और समीक्षा योग्य .sql फ़ाइलें तैयार करता है। कन्फर्मड संबंधों के लिए DDL प्रदान किया जाता है ताकि भारी लॉक से बचा जा सके। ब्रोकन संबंधों को कमेंटेड DDL के रूप में जारी किया जाता है ताकि उपयोगकर्ता तय कर सके कि अनाथ पंक्तियों (orphan rows) के साथ क्या करना है। * यह नामकरण प्रोफाइल (pt-br, en, es) का समर्थन करता है और कस्टम TOML प्रोफाइल को भी पढ़ सकता है। * जॉइन प्रेडिकेट्स को व्यू परिभाषाओं और फ़ंक्शन बॉडी से निकाला जाता है ताकि उन संबंधों को खोजा जा सके जहाँ नाम मिलान काम नहीं करता। * वैलिडेशन पाइपलाइन में छह चरण होते हैं: कैटलॉग पढ़ना, उपयोग के साक्ष्य निकालना, प्रोफाइल का उपयोग करके उम्मीदवार उत्पन्न करना, मेटाडेटा पर स्कोरिंग, आँकड़ों के साथ प्री-फिल्टरिंग, और डेटा के विरुद्ध अंतिम वैलिडेशन। इंस्टॉलेशन विकल्पों में DEB/RPM पैकेज, होमब्रू, डॉकर इमेज या Go के साथ सोर्स से निर्माण शामिल है। यह टूल रीड-ओनली है, स्टेटमेंट और लॉक टाइमआउट का सम्मान करता है, और यह सुनिश्चित करता है कि स्कीमा और टेबल की कवरेज की रिपोर्ट दी जाए। डिफ़ॉल्ट रूप से यह पब्लिक स्कीमा पर काम करता है, लेकिन इसे --all-schemas, --schema, --exclude-schema और --exclude फ्लैग्स के साथ बढ़ाया जा सकता है। सेटअप कमांड पहली बार उपयोग करने वालों को कनेक्शन, स्कीमा चयन और वैलिडेशन गहराई के माध्यम से मार्गदर्शन करती है। आउटपुट में प्रत्येक निष्कर्ष के लिए गणना, विश्लेषण की गई टेबल, आँकड़े प्री-फिल्टर परिणाम, एक टाइमस्टैम्प वाला JSON मॉडल, और .sql फ़ाइलें शामिल हैं जिनमें कन्फर्मड कीज़ के लिए DDL और ब्रोकन कीज़ के लिए कमेंटेड DDL होता है। सभी उत्पन्न SQL की समीक्षा निष्पादन से पहले की जानी चाहिए। संक्षेप में, pgfathom एक मूक और अनडॉक्यूमेंटेड स्कीमा को एक दृश्य और क्रियाशील मॉडल में बदल देता है, जो टूटी हुई इंटीग्रिटी को हल करने के लिए सटीक क्वेरी और गायब बाधाओं को बहाल करने के लिए सुरक्षित DDL प्रदान करता है।