वर्तमान में मैं इस एप्लिकेशन के लिए एक बड़ी रेल एप्लिकेशन और कई शाखाओं के साथ काम कर रहा हूं। ऐसा होता है कि एक फीचर को माइग्रेशन की आवश्यकता होगी, जो तब तक कोई समस्या नहीं होनी चाहिए जब तक कि आप इसे मास्टर के साथ मर्ज न करें: schema.rb को आपके dev डेटाबेस की जानकारी के साथ अपडेट किया गया है!schema.rb अन्य शाखाओं में माइग्रेशन के कारण गड़बड़ हुई
स्पष्ट करने के लिए:
1. Branch A has migration create_table_x
2. Branch B has migration create_table_y
3. Branch A adds another create_table_z and runs db:migrate
4. You want to merge Branch A with Master and you see table_x, table_y and table_z in the schema.rb of Branch A.
यह पुनर्स्थापित करने के लिए + एक शाखा में हर माइग्रेशन से पहले डेटाबेस बीज या शाखा प्रति एक डेटाबेस बनाने के लिए एक विकल्प नहीं है। 2 जीबी एसक्यूएल डेटा के विशाल आकार के कारण, यह काम करने योग्य नहीं होगा।
मेरा प्रश्न:
यह वास्तव में भंडार में schema.rb रखने के लिए के बाद से यह हर प्रवास का पुनर्निर्माण हो जाता है की आवश्यकता है?
यदि हां, तो डेटाबेस डंप के बजाय माइग्रेशन से स्कीमा बनाना संभव है?
मुझे लगता है कि आप अपने भंडार में अपने schema.rb रखना चाहिए। ऐसा हो सकता है कि कोई माइग्रेशन फ़ाइलों को साफ़ करता है और अतीत से कुछ अप्रयुक्त माइग्रेशन हटा देता है..और यदि आपके पास एक समान स्कीमा नहीं है। आरबी मैं एक गड़बड़ी में समाप्त हो सकता है। स्कीमा फ़ाइल को हर माइग्रेशन को अपडेट किया जाता है, पूरी तरह से पुनर्निर्माण नहीं करता है। लेकिन वैसे भी एक दिलचस्प सवाल है। – Mattherick
हां, मुद्दा यह है कि यह वर्तमान डेटाबेस संरचना से उत्पन्न हो रहा है, भले ही डेटाबेस में तालिकाएं मूल या शाखा में शामिल हों, जो आप हैं। मेरे द्वारा 'पुनर्निर्मित' के साथ क्या मतलब था। मुझे आशा है कि किसी को जानता है एक अच्छे तरह से तो छोड़ने/गुरु से डेटाबेस हर बार जब आप माइग्रेशन के साथ एक शाखा :) की – Vikko
संभावित डुप्लिकेट स्विच को कॉपी (http [क्या Git में schema.rb प्रबंधन करने के लिए पसंदीदा तरीका है?]: // stackoverflow .com/प्रश्न/737,854/क्या-है-हेतु अनुशंसित तरह से प्रबंधित करने में-स्कीमा-rb में Git) – Tachyons