2009-10-21 17 views
5

से प्रश्नों के युगल आज से शुरू होने वाली परियोजना के लिए liquibase का मूल्यांकन करते हैं।एक तरल पदार्थ नोब

क्या किसी ने इसे प्रक्रियाओं, कार्यों, मूल रूप से सभी plsql सामान बनाने के लिए उपयोग किया है?

यदि नहीं, तो क्या XML फ़ाइल में एम्बेडेड एसक्यूएल कोड लिखना संभव है?

अग्रिम धन्यवाद।

उत्तर

5

प्रक्रियाओं के प्रबंधन के लिए तरल पदार्थ में अंतर्निहित createProcedure टैग है। सबसे अच्छा तरीका आम तौर पर रनऑन चेंज के साथ या टैग को गठबंधन करने के लिए होता है, इसलिए जब आप परिभाषा को अपडेट करते हैं तो केवल तभी और आपकी प्रक्रिया को अपडेट किया जाएगा। इस तरह आप समय के साथ अपने चेंजलॉग एक्सएमएल फाइलों के बीच अंतर कर सकते हैं और देख सकते हैं कि प्रक्रिया कैसे बदल गई है।

sqlFile प्रति संग्रहीत-प्रति फ़ाइल संदर्भ फ़ाइल में टैग का उपयोग करना भी लोकप्रिय है, या, जैसा कि आपने कहा था, आप sql टैग इनलाइन कस्टम एसक्यूएल में उपयोग कर सकते हैं।

+0

वाह !!! यह जानकर बहुत खुशी हुई कि आप यहां हैं :) – Tom

+0

मैं हर जगह हूं :) एलएमके यदि आप किसी अन्य प्रश्न या समस्या में भाग लेते हैं, या अधिक स्पष्टीकरण की आवश्यकता है –

1

जबकि मैंने संग्रहित प्रक्रियाओं के लिए तरल पदार्थ का उपयोग नहीं किया है, तो मुझे अधिक सामान्य परिचालनों के लिए लिक्विबेस का कुछ अनुभव है।

कस्टम एसक्यूएल लिखना संभव है, या तो एक्सएमएल फ़ाइल में एम्बेडेड या बाहरी फाइल से संदर्भित किया जा सकता है।

2

संग्रहित प्रक्रियाओं, ट्रिगर्स और कार्यों के लिए एसक्यूएल टैग का उपयोग करने के प्रयास में मुझे समस्याएं आई हैं, लेकिन मेरे मामले में ये माइस्क्लुएल जेडीबीसी चालक के साथ उचित रूप से समस्याएं थीं, न कि लिक्विबेस स्वयं। जिस अभ्यास में मैंने निपटाया है, वह है एसएक्सएलफ़ाइल रिफैक्टरिंग का उपयोग नाथन के सुझाव के रूप में करना है, फिर उसी प्रोजेक्ट में एसपी/ट्रिगर/फ़ंक्शन कोड को चेंजलॉग के रूप में नियंत्रित करने के लिए, इसके साथ स्रोत कोड सिस्टम में संस्करणित किया गया है। यह आपको एसपी/जो भी कोड प्रबंधित करता है, वैसे ही यह वास्तविक स्रोत कोड था।

परिवर्तन में runOnChange = "true" सेट करना sqlFile refactoring युक्त सेट आवश्यक है। यह स्विच है (धन्यवाद, नाथन) जो प्रक्रियात्मक डेटाबेस कोड के वास्तविक स्रोत नियंत्रण को सक्षम बनाता है।

+0

अरे टिम, तो अगर मुझे इसका सारांश मिल जाए, तो क्या यह तर्कसंगत होगा एक {schemaName}/sprocs/sproc_name.xml फ़ाइलों के साथ पॉप्युलेट किया गया है और फिर इन फ़ाइल को अद्यतन होने पर स्कीमा का पता लगाने और अद्यतन करने के लिए Liquibase है? – David

+0

यह काम करेगा, लेकिन मुझे लगता है कि यह थोड़ा भारी होगा। मैंने जो किया है, उसके पास एक "संग्रहित-proc.xml" (या कुछ) चेंजलॉग है, जिसमें runOnChange = "true" change इसमें सेट है, प्रत्येक एक एकल idempotent चला रहा है, एसपी-निर्माण एसक्यूएल स्क्रिप्ट db/src पर स्थित है /procs/*.sql (या कहीं)। जब तक आप एसपी कोड बदल सकते हैं, तब तक जब भी आप चेंजलॉग को अपडेट करते हैं, तब तक आपके पास डेटाबेस में और स्रोत नियंत्रण में हमेशा एसपी होगा। जब आप एक नया एसपी जोड़ते हैं, तो एक नया परिवर्तन जोड़ें उस चेंजलॉग पर सेट करें। बहुत अच्छा काम करता है! – tlberglund

संबंधित मुद्दे