maven - किसी भी परिवर्तन के बिना Liquibase चेकसम सत्यापन त्रुटि




changeset (3)

चेकसम सत्यापन त्रुटियां लिक्विबेस द्वारा फेंक दी जाती हैं कि यह बताता है कि डेटाबेस पर लागू किए गए परिवर्तन अब लिक्विबेस परिवर्तन फाइलों में निर्दिष्ट समान सामग्री से मेल नहीं खाते हैं ....

यह एक सुरक्षा उपाय है जो गलत व्यवहार की विशिष्टता फ़ाइलों को पहचानने के लिए बनाया गया है और विकास के दौरान आसानी से हो सकता है। इस समस्या को ठीक करने का सबसे अच्छा तरीका सभी वस्तुओं को छोड़ देता है और विकास वातावरण ताज़ा होने के चलते इस प्रकार चलने वाले तरल पदार्थ को चलाता है:

mvn liquibase:dropAll liquibase:update

ड्रॉप-सभी लक्ष्य के लिए प्रलेखन

कभी-कभी आप वास्तव में बदलते परिवर्तनों का समर्थन करना चाहते हैं उन परिस्थितियों में, तरबिज़ एक "रनऑनचेंज" विशेषता का समर्थन करता है जो चुनिंदा डेटाबेस इंस्टेंस के विरुद्ध परिवर्तनों को लागू करता है।

मेवेन की तरलता वैधता विफल होती है परिवर्तनों में भी कोई परिवर्तन नहीं हुआ।

मेरे डेटाबेस में ओरेकल है

परिस्थिति:

  1. डीबी <changeSet id="1" author="me" dbms="oracle"> तालिका में <changeSet id="1" author="me" dbms="oracle"> लिए रिकॉर्ड था <changeSet id="1" author="me" dbms="oracle"> ;

  2. फिर गलती से मैंने एक और बदलाव किया <changeSet id="1" author="me" dbms="hsqldb">

  3. फिर से चलने वाली लिक्विबेस स्क्रिप्ट मेवेन चेकसम सत्यापन त्रुटि को निकाल दिया।

  4. तब मैंने hsqldb changeSet को <changeSet id="2" author="me" dbms="hsqldb">

  5. मेवेन अभी भी चेकसम सत्यापन त्रुटि को फायरिंग कर रहा है

  6. फिर मैंने पहली बार परिवर्तन चालू कर दिया। डीबी में मैन्युअल रूप से चालू चेक पर सेट चेकसम को सफलतापूर्वक चलाया गया।

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



मेरे मामले में मैं भूल गया था कि लिकिबेज सभी चिपलॉग को डेटाबेस तालिका में लिखते हैं।

DATABASECHANGELOG तालिका पर जाएं और मैन्युअल रूप से अपने chagelogs को हटा दें।