2008-11-01 19 views
39

क्या आप दो डेटाबेस को सिंक्रनाइज़ करने के लिए किसी भी एप्लिकेशन को जानते हैं - विकास के दौरान कभी-कभी इसे एक या दो टेबल पंक्तियों या नई तालिका या कॉलम को जोड़ने की आवश्यकता होती है। आमतौर पर मैं कुछ फ़ाइल में प्रत्येक एसक्यूएल स्टेटमेंट लिखता हूं और पथ अपलोड करने के दौरान मैं अपने उत्पादन डेटाबेस पर उन पंक्तियों को पूर्ववत करता हूं (इससे पहले इसका समर्थन करता हूं)। मैं mySQL और postreSQL डेटाबेस के साथ काम करता हूं।विकास और उत्पादन डेटाबेस को सिंक्रनाइज़ करने के लिए कैसे करें

आपका अभ्यास क्या है और इसमें कौन से अनुप्रयोग आपकी सहायता करते हैं।

+0

मैंने एक उपहार दिया है। मुझे MySQL डेटाबेस के लिए काम करने की आवश्यकता है। मैं Typo3 के साथ काम कर रहा हूँ, अगर यह मायने रखता है। – demonkoryu

+0

और यह कम लागत होनी चाहिए। :) – demonkoryu

उत्तर

5

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

अन्यथा मुझे पता है कि बहुत से लोग SQLServer के लिए redgate सामान का उपयोग करते हैं।

0

सिबेल (सीआरएम, बिक्री, आदि प्रबंधन उत्पाद) में विकास डेटाबेस (de2prod) के साथ उत्पादन डेटाबेस को संरेखित करने के लिए एक अंतर्निहित टूल है।

अन्यथा, आपको मैन्युअल रूप से निष्पादित स्क्रिप्ट के साथ चिपकना होगा।

0

Navicat में एक संरचना सिंक्रनाइज़ेशन विज़ार्ड है जो इसे संभालता है।

6

PostgreSQL के लिए आप Another PostgreSQL Diff Tool का उपयोग कर सकते हैं। यह दो एसक्यूएल डंप को बहुत तेज कर सकता है (लगभग 300 टेबल, 50 विचारों और 500 संग्रहीत प्रक्रियाओं के साथ डीबी पर कुछ सेकंड)। तो आप आसानी से अपने परिवर्तन पा सकते हैं और एक एसक्यूएल diff प्राप्त कर सकते हैं जिसे आप निष्पादित कर सकते हैं।

APGDiff पृष्ठ से:

एक और PostgreSQL Diff उपकरण सरल PostgreSQL diff उपकरण है जो स्कीमा उन्नयन के लिए उपयोगी है। टूल दो स्कीमा डंप फ़ाइलों की तुलना करता है और पुरानी स्कीमा के अपग्रेड के लिए उपयुक्त आउटपुट फ़ाइल बनाता है (कुछ हस्तनिर्मित संशोधनों के बाद)।

5

Redgate एसक्यूएल के लिए एक और वोट की तुलना करें

http://www.red-gate.com/products/SQL_Compare/index.htm

यह बिना जीना नहीं चाहता!

संपादित करें: क्षमा करें, ऐसा लगता है कि यह केवल SQL सर्वर के लिए है। फिर भी - यदि कोई SQL सर्वर उपयोगकर्ता एक ही प्रश्न है तो मैं निश्चित रूप से इस टूल की अनुशंसा करता हूं।

+1

यह अब एक लाल गेट उपकरण है जिसे हाल ही में जारी किया गया है: http://mysql-compare.com/ –

0

मैं इसे Hibernate का उपयोग करके हल करता हूं। यह लापता टेबल, कॉलम इत्यादि का पता लगा सकता है और स्वतः स्वामित्व कर सकता है

1

मुझे वास्तव में EMS tools पसंद है।

वहां सभी लोकप्रिय डीबी के लिए उपकरण उपलब्ध हैं और आपके पास हर प्रकार के डीबी के लिए एक ही उपयोगकर्ता अनुभव है।

उपकरण में से एक डीबी तुलनाकर्ता है।

2

यदि आप अपने विकास डेटाबेस के लिए अपने एसक्यूएल कथन लिखते हैं (जो कि मैं कल्पना करता हूं, डीडीएल निर्देशों की श्रृंखला जैसे कि CREATE, ALTER और DROP), आप उन्हें तालिका में रिकॉर्ड करके ट्रैक क्यों नहीं रखते हैं, एक "संस्करण" सूचकांक के साथ?इसके बाद आप में सक्षम हो जाएगा:

  1. ट्रैक अपने संस्करण में परिवर्तन
  2. एक छोटे दिनचर्या डेटाबेस के लिए दर्ज निर्देश भेज कर अपना उत्पादन डेटाबेस की "स्वचालित" अद्यतन की इजाजत दी।
+0

यह अनिवार्य रूप से डेटाबेस संस्करण है, लेकिन स्वयं लागू है। अच्छा दृष्टिकोण, लेकिन मौजूदा उपकरण का उपयोग करने के लिए शायद बेहतर है। डेटाबेस को संस्करणित करने के लिए – sleske

25

आपने एक टूल या एप्लिकेशन उत्तर मांगा है, लेकिन आपको वास्तव में क्या चाहिए एक प्रक्रिया उत्तर है। अंतर्निहित थीम यह है कि आपको अपने डेटाबेस डीडीएल (और जब आवश्यक हो, डीएमएल) का संस्करण होना चाहिए और परिवर्तन स्क्रिप्ट प्रदान करना चाहिए ताकि आपके डेटाबेस के किसी भी संस्करण को उच्च संस्करण में अपडेट किया जा सके।

जेफ Atwood द्वारा प्रदान की और लालकृष्ण स्कॉट एलन द्वारा लिखित विवरण के साथ बताएं लिंक का यह सेट क्या इस तरह दिखना चाहिए - और वे बेहतर कर की तुलना में मैं संभवतः यहाँ लिख सकते हैं: http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html

+3

+1। इच्छा है कि मैं और अधिक उठा सकता हूं ... – sleske

+1

समस्या यह है कि समस्याएं हैं। Typo3 अद्यतन/संशोधनों पर अपनी स्क्रिप्ट चलाता है, और जब मैं ऐसा करता हूं तो मैं परिवर्तनों को निकालना चाहता हूं। यही कारण है कि मुझे एक डीबी diff उपकरण – demonkoryu

+1

की आवश्यकता है यदि आप वर्जनिंग रूट पर जाएंगे, तो मैं http://www.liquibase.org/ का उपयोग करने की सलाह देता हूं। यह समय पर आपकी स्कीमा आगे और पीछे का प्रबंधन कर सकता है। –

1

मेंढक

अतीत में कई बार एक गधे बचाया। लोग बाहर निकलने की रणनीति के साथ एसक्यूएल क्यों चलाते हैं?

रेडगेट एक भी अच्छा है।

0

आप dbDeploy या इसी तरह की एक स्क्रिप्ट का उपयोग कर चीजों को करने के अपने वर्तमान तरीके से कुछ स्वचालन जोड़ सकते हैं। यह आपको अपने स्कीमा परिवर्तनों का ट्रैक रखने और फिट होने पर आपकी स्कीमा को अपग्रेड/रोलबैक करने की अनुमति देगा।

0

DBV के लिए संशोधित कर सकते हैं - "डाटाबेस संस्करण नियंत्रण, आसान हो गया!" (PHP)

+0

बस याद रखना कि कौन सी डीबीवी डेटाबेस संरचना से संबंधित है; डेटा नहीं –

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

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