लंबे समय से, हमने परियोजना के भंडार के भीतर अपना डेटा रखा है। हमने बस डेटा/एसक्यूएल के तहत सबकुछ रखा है, और प्रत्येक तालिका में अपनी खुद की create_tablename.sql और data_tablename.sql फ़ाइलें थीं।कोड और डेटा ट्रैकिंग/तैनाती
हमने अब हमारे दूसरे प्रोजेक्ट को स्केलर पर तैनात किया है और हमने महसूस किया है कि यह थोड़ा गन्दा है।
जिस तरह से हम नियोजित करें:
हम स्क्रिप्ट जो 3 अभिलेखागार (डेटा, कोड, स्थैतिक फ़ाइलें) जो हम तो S3 पर 3 अलग बाल्टी में स्टोर में परियोजना के अलावा आंसू की एक "packageup" संग्रह है।
जब भी कोई भूमिका शुरू होती है, तो यह फ़ाइलों में से एक (भूमिका, डेटा, एनएफएस या वेब के आधार पर) डाउनलोड करता है और फिर एक "अनपॅक" स्क्रिप्ट प्रत्येक भूमिका के लिए सब कुछ सेट करता है, डेटा को mysql में लोड करता है, सेट अप करता है एनएफएस, आदि
हम ऐसा इसलिए करते हैं क्योंकि हम सर्वर छवियों को सहेजना नहीं चाहते हैं, हम हमेशा वेनिला इंस्टेंस से शुरू करते हैं जिस पर हम विभिन्न घरों में निर्मित स्क्रिप्ट का उपयोग करके स्क्रैच से सब कुछ इंस्टॉल करते हैं। स्टार्टअप समय कोई मुद्दा नहीं है (हमारे पास 9 मिनट में खेत का उपयोग करने के लिए तैयार है)।
समस्या यह है कि जब भी हम एक नया विकास निर्माण स्थापित करने का प्रयास करते हैं तो डेटाबेस के सही संस्करण को खोजने का प्रयास करना दर्द होता है (किसी भी समय, हमारे पास लगभग 4 देव एक परियोजना के लिए बनाता है)। इसके अलावा, उत्पादन में जाने के बाद गिट शुरू हो रहा है, क्योंकि एसक्यूएल फाइलें लगभग 500 एमबी तक खत्म होती हैं।
सवाल यह है:
कैसे बाकी सब प्रबंध कर रहा है डेटाबेस? मैं ऐसा कुछ ढूंढ रहा हूं जो देव में उत्पादन से डेटा लेना आसान बनाता है, और देव से उत्पादन में डेटा माइग्रेट करना आसान बनाता है, लेकिन किसी भी चीज़ पर ठोकर नहीं लगाता है।
तुम क्यों ठेस देव से डेटा स्थानांतरित करना चाहते हैं? –
@sheepsimulator - डेटाबेस में स्टोर कॉन्फ़िगरेशन डेटा जैसे कई ढांचे (जैसे Magento, ATG, आदि) को dev/staging वातावरण को दोहराने के लिए पोर्ट किया जाना आवश्यक है –