मुख्य कंटेंट तक स्किप करें

डेटा मॉडल और ER आरेख

डेटा मॉडल क्षेत्र API अनुबंध और डेटाबेस को जोड़ता है। यह आपके OpenAPI स्कीमा से पूरा रिलेशनल मॉडल निकाल सकता है, मौजूदा डेटाबेस से उसकी तुलना कर सकता है और किसी भी तरफ़ बदलाव होने पर दोनों को एक-जैसा रखने में मदद कर सकता है। दृश्य ER आरेख पूरी संरचना दिखाता है।

दोनों शुरुआती स्थितियाँ समर्थित हैं:

  • अभी कोई टेबल नहीं है। मौजूदा API से सभी टेबल, कॉलम, फ़ॉरेन की और संबंध टेबल निकालें, साथ में उन्हें बनाने वाला SQL भी।
  • डेटाबेस पहले से मौजूद है। वास्तविक टेबल और लागू फ़ॉरेन की बाधाएँ पढ़ें, API से निकलने वाले मॉडल से उनका मिलान करें और समानताएँ तथा अंतर देखें।

चार स्तरों पर मिलान​

मिलान (datamodel.reconcile) चार स्तरों में प्रामाणिक जानकारी लौटाता है:

स्तरइसमें क्या होता है
देखी गई स्थितिडेटाबेस की ऐसी टेबल जिनका मॉडल में मेल नहीं है, और केवल डेटाबेस में मौजूद या बाधाओं के रूप में लागू फ़ॉरेन की
मॉडल की स्थितिहर टेबल की स्थिति (missing, drift, matched, extra), मॉडल और डेटाबेस के कॉलम की जोड़ियाँ, फ़ील्ड स्तर के अंतर, प्रभावित API कार्रवाइयाँ और मॉडल के संबंध
प्रस्तावित बदलावक्रमबद्ध, जोड़ने पर आधारित माइग्रेशन योजना, जिसमें blockedBy निर्भरताएँ और हर चरण का SQL शामिल है
निकाले गए निष्कर्षअपने आप निकाली गई कई-से-कई संबंधों की लिंक टेबल, खुले सवाल और सुरक्षा जाँच

मॉडल हर टेबल, कॉलम, संबंध और कथन को इसी परिणाम पर आधारित करता है; वह DDL गढ़ता नहीं है।

टेबल की स्थिति​

  • गायब (नई): API के अनुसार ज़रूरी है, लेकिन डेटाबेस में नहीं है;
  • अंतर: दोनों तरफ़ मौजूद है, लेकिन कॉलम या बाधाएँ अलग हैं;
  • मेल: मौजूद है और मॉडल के अनुरूप है;
  • अतिरिक्त: डेटाबेस में है, लेकिन मौजूदा API से उसकी आवश्यकता नहीं निकलती।

संबंध टेबल और इंडेक्स अपने आप निकाले जाते हैं​

लिंक टेबल हाथ से मॉडल करने की ज़रूरत नहीं है। अगर स्कीमा कई-से-कई संबंध दिखाते हैं, जैसे user और product संसाधनों के बीच, तो निकाले गए निष्कर्ष वाला स्तर केवल दो मूल टेबल पर नहीं रुकता; वह उन्हें जोड़ने वाली संबंध टेबल और संबंधित इंडेक्स भी निकालता है। बनाए गए SQL में सेकंडरी इंडेक्स शामिल होते हैं।

अगर व्यावसायिक तर्क स्पष्ट रूप से नहीं निकाला जा सकता, तो परिणाम अनुमान लगाने के बजाय खुला सवाल दिखाता है। सुरक्षा जाँच उन बातों को चिह्नित करती है जिन्हें व्यक्ति द्वारा समीक्षा की ज़रूरत है।

दृश्य ER आरेख​

ER दृश्य मॉडल को ग्राफ़ के रूप में दिखाता है, ताकि संबंध और फ़ॉरेन की टेबल की सूची पढ़े बिना एक नज़र में समझ आएँ:

  • टेबल नोड के रूप में दिखती हैं और जुड़ने वाली रेखाओं के टकराव कम करने के लिए अपने आप व्यवस्थित होती हैं;
  • फ़ॉरेन की संबंध कनेक्शन के रूप में दिखते हैं;
  • नोड की स्थिति मिलान का परिणाम दिखाती है: नई, अंतर वाली, मेल खाने वाली या अतिरिक्त;
  • साइड पैनल में create_table, alter_table और समीक्षा की मदों जैसे ठोस माइग्रेशन चरण, चुनी हुई टेबल के SQL सहित दिखते हैं।

इससे आपको स्कीमा की समग्र तस्वीर और डेटाबेस को उसके अनुरूप लाने का सटीक, क्रमबद्ध रास्ता मिलता है।

दोनों दिशाओं में प्रभाव विश्लेषण​

मॉडल API कार्रवाइयों और टेबल दोनों को जानता है, इसलिए बदलाव का असर दिखाई देता है:

  • API बदलने पर मिलान प्रभावित टेबल पहचानता है: मौजूदा टेबल जिनमें अंतर आया है और नई टेबल जो जोड़नी हैं, उनके SQL सहित;
  • डेटाबेस बदलने पर प्रभावित टेबल का उपयोग करने वाली कार्रवाइयाँ चिह्नित होती हैं।

किसी भी तरफ़ संपादन के बाद मॉडल और डेटाबेस का मेल होने तक रीफ़्रेश करके फिर तुलना कर सकते हैं।

डिप्लॉयमेंट स्क्रिप्ट​

नए डेटाबेस के लिए datamodel.deploymentScript एक ऐसी SQL स्क्रिप्ट बनाता है जिसे दोबारा चलाने पर वही परिणाम रहता है और जो केवल आगे के बदलाव करती है:

  • फ़ॉरेन की निर्भरता के क्रम में CREATE TABLE IF NOT EXISTS;
  • सेकंडरी इंडेक्स;
  • वैकल्पिक, निश्चित नमूना पंक्तियाँ: 0–50, डिफ़ॉल्ट 0; संबंध टेबल में नमूना डेटा कभी नहीं भरा जाता।

मौजूदा डेटाबेस के लिए मिलान का उपयोग करें। यह क्रमबद्ध माइग्रेशन योजना के रूप में जोड़ने वाले ALTER कथन बनाता है।

डेटाबेस कनेक्शन​

कनेक्शन सहेजी गई प्रोफ़ाइल के रूप में रखे जाते हैं: ID, नाम, डेटाबेस प्रकार, होस्ट, पोर्ट, उपयोगकर्ता और डेटाबेस। पासवर्ड कभी वापस नहीं लौटाए जाते। MySQL, SQL Server और Oracle समर्थित हैं।

  • database.runSelect सहेजी गई प्रोफ़ाइल पर केवल-पढ़ने वाली SELECT चलाता है और सीमित, आवश्यकता होने पर काटा गया पंक्ति-समूह लौटाता है; लिखने वाली कार्रवाइयाँ और DDL रोके जाते हैं;
  • database.prefillConnection आपके दिए विवरण से पहले से भरा नया-कनेक्शन संवाद खोलता है, ताकि पासवर्ड आप खुद दर्ज करें, उसे प्रॉम्प्ट में न देना पड़े।

SQL बनाया जाता है, अपने आप चलाया नहीं जाता​

इस पूरे क्षेत्र में SQL समीक्षा के लिए बनाया जाता है, आपके डेटाबेस पर चलाया नहीं जाता। उसे कब और कैसे लागू करना है, यह आप तय करते हैं; केवल-पढ़ने वाली पहुँच मौजूदा डेटा की रक्षा करती है। डेटाबेस बदलने से पहले आप मॉडल को समझ और सुधार सकते हैं।

संबंधित: प्रोटोकॉल, अनुरोध कार्यक्षेत्र, सेटिंग्स।