Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

संग्रहित प्रक्रियाओं, कार्यों और ट्रिगर्स के साथ परिवर्तन लॉग उत्पन्न करने के लिए लिक्विबेस का विस्तार कैसे करें?

आप सही कह रहे हैं कि सामान्य रणनीति एक नया वर्ग बनाना है जो स्नैपशॉट जेनरेटर को लागू करता है, लेकिन कुछ अन्य चरण भी हैं जिन्हें आपको करने की आवश्यकता है। सामान्य स्नैपशॉट प्रक्रिया है:

  1. Liquibase SnapshotGenerator के कार्यान्वयन की खोज करता है और डेटाबेस में मिलने वाली प्रत्येक वस्तु के लिए AddTo() को कॉल करता है। अपने प्रकारों के लिए, आप शायद एक त्वरित "यदि पारित वस्तु उदाहरण स्कीमा" चाहते हैं क्योंकि वे प्रकार हैं जो एक स्कीमा का हिस्सा हैं।
  2. आपको डेटाबेसऑब्जेक्ट को लागू करने वाले नए पैकेज, StoredProcedure, आदि ऑब्जेक्ट बनाने होंगे। वे ehte liquibase.structure.core.Table क्लास की तरह होंगे और ऑब्जेक्ट की स्थिति को कैप्चर करेंगे। वे आपके SnapshotGenerator.addsTo() विधि में पहचाने जाने योग्य (नाम, स्कीमा, आदि सेट) के बिंदु पर बनाए गए हैं
  3. ऐसे सभी ऑब्जेक्ट जो AddTo () विधि द्वारा जोड़े जाते हैं, फिर आपके SnapshotGenerator.snapshotObject() विधि के माध्यम से चलाए जाते हैं जो किसी भी अतिरिक्त मेटाडेटा को खींच लेगा जो आपको मूल रूप से नहीं मिला था, जैसे कि संग्रहीत प्रक्रिया पाठ, आदि।
  4. एक बार जब लिक्विबेस में आपके ऑब्जेक्ट वाला एक स्नैपशॉट होता है, तो यह स्नैपशॉट की तुलना दूसरे से करता है (जेनरेट चेंजलॉग मामले में एक खाली स्नैपशॉट) यह निर्धारित करने के लिए कि कौन सी वस्तुएं गायब हैं, अप्रत्याशित हैं, और दूसरे स्नैपशॉट में बदल गई हैं। इसके बाद यह MissingObjectChangeGenerator, UnexpectedObjectChangeGenerator, और ChangedObjectChangeGenerator के कार्यान्वयन की तलाश करता है। GenerateChangeLog के लिए केवल "लापता" ऑब्जेक्ट होंगे ताकि आप MissingTriggerChangeGenerator, MissingPackagedChangeGenerator आदि को लागू कर सकें। उनका काम गायब ऑब्जेक्ट बनाने के लिए चेंज इंस्टेंस बनाना है
  5. Msising*ChangeGenerator वर्ग RawSqlChange उदाहरण लौटा सकता है या आप CreateTriggerChange जैसे परिवर्तन के नए कार्यान्वयन बना सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DATA_PUMP से S3 बकेट में निर्यात कैसे करें?

  2. सी # में ओडीबीसी का उपयोग कर ओरेकल पैकेज को कॉल करने का प्रयास करते समय सिंटेक्स त्रुटि

  3. जेपीए से एक ऑरैकल फ़ंक्शन को कॉल करना

  4. होमवर्क - दो शहरों के बीच कई फ्लाइट स्टॉप की गणना करने की कोशिश कर रहा है?

  5. क्या Oracle के PS/SQL को किसी ब्लॉक के `घोषणा` खंड में प्रविष्टियों के विशिष्ट क्रम की आवश्यकता है