2012-09-24 20 views
5

हमारे पास उत्पादन में एक डेटाबेस है जिसमें पहले से ही "उपयोगकर्ता" तालिका में पंक्तियों की एक अच्छी संख्या है। flyway वेबसाइट से निम्नलिखित बयान पर विचार करें:एक उत्पादन डेटाबेस में फ्लाईवे एकीकरण

आप है Flyway से भर दिया गया है कि नहीं यह जाने का रास्ता है एक मौजूदा डेटाबेस है:

  • एक आरंभिक माइग्रेशन स्क्रिप्ट को पुन: होगा बनाएं आपका वर्तमान राज्य और इसे कम संस्करण संख्या दें।
  • फ्लाईवे का उपयोग करें: मेटाडेटा तालिका बनाने के लिए init और इस स्क्रिप्ट को वर्तमान संस्करण के रूप में सेट करें।

मैं डेटाबेस में मेरी स्कीमा और विभिन्न स्थिरांक का प्रबंधन करने के flyway उपयोग करना चाहते हैं, लेकिन मैं V1__Base_version.sql हमारे वर्तमान उत्पादन उपयोगकर्ताओं के लिए खाते की जानकारी शामिल करने के लिए नहीं करना चाहते हैं, विशेष रूप से विचार कर यह संग्रह किया गया है एससीएम में अगर मैं इन निर्देशों को सही ढंग से समझता हूं, तो मुझे V1__Base_version.sql के साथ "[my] वर्तमान स्थिति को फिर से बनाने" की क्षमता की आवश्यकता होगी।

तो केवल स्कीमा के साथ प्रारंभिक माइग्रेशन बनाना होगा और स्थिरांक ठीक काम करेंगे? या हमारे वर्कस्टेशन पर डेटाबेस 100% उत्पादन में उन लोगों से मेल खाना चाहिए?

+0

यदि मैं सही हूं, तो मैं 24 घंटे में इसका उत्तर दूंगा, लेकिन मुझे लगता है कि जब तक मैं उत्पादन डेटाबेस पर एक फ्लाईवे इनिट करता हूं (स्कीमा और स्थिरांक मानते हैं) मुझे स्पष्ट होना चाहिए। – Joe

उत्तर

7

आप सही हैं। एक संस्करण के साथ उत्पादन डेटाबेस को चिह्नित करने के लिए init कमांड है।

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

+0

उत्कृष्ट। धन्यवाद! – Joe

+0

नए फ्लाईवे संस्करण में यह बेसलाइन कमांड https://flywaydb.org/documentation/command/baseline है जो सही है? –