2012-11-28 17 views
52

मैं एक वर्डप्रेस डिजाइनर/डेवलपर हूं, जो संस्करण नियंत्रण का उपयोग करने में अधिक से अधिक शामिल हो रहा है, विशेष रूप से गिट, हालांकि मैं कुछ परियोजनाओं के लिए एसवीएन का उपयोग करता हूं। मैं वर्तमान में अपने रिमोट रेपो के लिए बीनस्टॉक का उपयोग कर रहा हूं।एक MySQL डेटाबेस पर संस्करण नियंत्रण (गिट) का उपयोग

मेरे रेपो में सभी वर्डप्रेस फाइलों को जोड़ना कोई समस्या नहीं है, अगर मैं जानना चाहता हूं कि मैं कर सकता हूं तो मैं wp-config फ़ाइल को संपादित कर सकता हूं, लेकिन चूंकि मैं एकमात्र डेवलपर हूं, वर्तमान में, और ये परियोजनाएं बंद स्रोत हैं , यह वास्तव में थोड़ा समझ में आता है।

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

क्या ऐसा करने का एक स्वीकार्य अभ्यास है?

+0

मैं डेटाबेस को डंप करता हूं और इसे संस्करण नियंत्रण में जांचता हूं। लेकिन मैं वर्डप्रेस प्रोजेक्ट्स पर सर्वर पर धक्का नहीं देता (गिट हमेशा साझा होस्टिंग पर उपलब्ध नहीं है)। तो आमतौर पर मैं एफ़टीपी के माध्यम से मैन्युअल रूप से अपलोड करता हूं, जैसा कि खराब है। तैनाती के लिए गिट का उपयोग करते समय कुछ उचित प्रथाओं को सुनना दिलचस्प है। –

+0

इसके अलावा, आप डेटाबेस को 'विकास' शाखा में चेक कर सकते हैं, और तकनीक को [मास्टर] (http://stackoverflow.com/a/8014154/551093) का उपयोग डेटाबेस को 'मास्टर' में विलय करने से बाहर करने के लिए कर सकते हैं। फिर केवल 'मास्टर' से तैनात करें। सिद्धांत रूप में, यह काम करना चाहिए। –

+0

मैंने "वर्डप्रेस वर्जन कंट्रोल" के लिए एक त्वरित Google किया और वर्डप्रेस प्लगइन्स की यह सूची पाई: http://wordpress.org/extend/plugins/tags/version-control क्या उनमें से कोई भी उपयोगी होगा? –

उत्तर

18

आप एक गिट भंडार के भीतर अपने डेटाबेस का बैकअप ले सकते हैं। बेशक, यदि आप डेटा को द्विआधारी रूप में गिट में रखते हैं, तो आप diffs (परिवर्तन) का उपयोग कर डेटा को कुशलतापूर्वक स्टोर करने की सभी गिट की क्षमता खो देंगे। तो नंबर एक सबसे अच्छा अभ्यास यह है: डेटा को एक पाठ क्रमबद्ध प्रारूप में संग्रहीत करें।

mysqldump यह करने में आपकी सहायता करने के लिए एक उपयुक्त प्रोग्राम है। हालांकि यह सही नहीं है। अगर कुछ वस्तुओं के क्रमिकरण क्रम को परेशान करता है (उदाहरण के लिए, नई टेबल बनाने आदि के परिणामस्वरूप) तो कृत्रिम ब्रेक diff में प्रवेश करेंगे। इससे भंडारण की दक्षता कम हो जाएगी। आप केवल धारावाहिक परिवर्तनों के लिए एक कस्टम धारावाहिक लिख सकते हैं - लेकिन फिर आप कड़ी मेहनत कर रहे हैं कि गिट पहले से ही अच्छा है। बस एसक्यूएल डंप का उपयोग करें।

कहा जा रहा है कि, आप जो करना चाहते हैं वह यह नहीं है कि जब वे गिट में डेटाबेस डालने के बारे में बात करते हैं तो आमतौर पर देवताओं का क्या मतलब नहीं है। उदाहरण के लिए, यदि आप @eggyal (link to codinghorror) द्वारा पोस्ट किए गए लिंक को पढ़ते हैं तो आप देखेंगे कि वास्तव में गिट में जो रखा गया है वह प्रारंभिक डेटाबेस उत्पन्न करने के लिए आवश्यक स्क्रिप्ट हैं। अतिरिक्त स्क्रिप्ट हो सकती हैं, जैसे कि एक स्वच्छ स्थिति वाले डेटाबेस डेटा को पॉप्युलेट करने या परीक्षण डेटा के साथ इसे पॉप्युलेट करने के लिए। ऐसी सभी एसक्यूएल स्क्रिप्ट टेक्स्ट फाइलें हैं, और एसक्यूएल डंप के रूप में बहुत अधिक प्रारूप है जो आप mysqldump से प्राप्त करेंगे। तो ऐसा कोई कारण नहीं है कि आप इसे अपने दिन-प्रति-दिन डेटा के साथ भी नहीं कर सकते।

+9

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

+1

@Catcall मैं सहमत हूं। यही वह बात है जब मैं कहता था कि कुछ एसक्यूएल स्क्रिप्ट्स प्रारंभिक स्थिति के साथ डेटाबेस को पॉप्युलेट कर सकती हैं। वर्णित रणनीति बहुत प्रभावी होगी यदि आप कुछ पूर्व-कॉन्फ़िगर किए गए राज्यों के अनुसार कई वर्डप्रेस साइट्स को तुरंत तैनात करना चाहते हैं, उदा। वांछित प्लगइन्स, आदि की पसंदीदा प्रारंभिक कॉन्फ़िगरेशन के साथ –

5

लेख How to Sync A Local & Remote WordPress Blog Using Version Control Mercurial का उपयोग कर एक वर्डप्रेस ब्लॉग के दो उदाहरणों (विकास, उत्पादन) के बीच सिंक स्वचालित करने के बारे में सलाह देता है। उल्लेख है कि इस परिदृश्य के लिए, गिट और मर्कुरियल बहुत समान हैं।

चरण 4 (डेटाबेस सिंक्रनाइज़ करना) यहां रुचि है।

डेटाबेस सामग्री को उस फ़ाइल में निर्यात किया जाएगा जो संशोधन नियंत्रण द्वारा ट्रैक किया गया है। प्रत्येक बार जब हम परिवर्तन खींचते हैं, तो डेटाबेस सामग्री को इस फ़ाइल द्वारा प्रतिस्थापित किया जाएगा, जिससे हमारे डेटाबेस को अद्यतित किया जा सकेगा।

फिर, यह नौकरी के संघर्ष और पटकथा भाग पर विस्तार से बताता है।

यदि आप इससे परिचित नहीं हैं, तो वहां version control tutorial in Mercurial है।

7

MySQL और MongoDB जैसे संस्करण नियंत्रण डेटाबेस के लिए कई सॉफ़्टवेयर उपलब्ध नहीं हैं।

लेकिन कोई विकास में है और बीटा संस्करण जल्द ही लॉन्च होने वाला है।Klonio - Version Control for databases

0

ध्यान रखें कि वर्डप्रेस डेटाबेस में सभी समाचार फ़ीड सामग्री संग्रहीत करता है, इसलिए यदि आप कोई परिवर्तन नहीं करते हैं, तो भी बहुत सारी सामग्री बदल जाएगी।

+0

ऑटो-प्रतिबद्धता के बारे में क्या? –