2011-11-10 15 views
5

क्या रेलवे डीबी माइग्रेशन फ़ाइलों को प्रति फ़ाइल 1 फ़ाइल में विलय करने के लिए schema.rb मैन्युअल रूप से विभाजित करने का कोई अच्छा तरीका है?विलय डीबी/माइग्रेशन फाइलें

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

उत्तर

-4

परेशान मत हो। पुरानी माइग्रेशन फाइलें कोई नुकसान नहीं कर रही हैं, और वे रखरखाव को आसान बना सकते हैं। उन्हें छोड़ दो।

+0

वे रखरखाव को केवल तभी आसान बनाते हैं जब माइग्रेशन वास्तविक डेटा परिवर्तनों का प्रतिनिधित्व करते हैं, और ऐसा नहीं है। – guiding5

+0

माइग्रेशन फ़ाइलों को * स्कीमा * परिवर्तनों का प्रतिनिधित्व करना चाहिए, डेटा परिवर्तनों के रूप में नहीं। क्या आप एक नमूना माइग्रेशन पोस्ट कर सकते हैं जिसे आप से छुटकारा पाना चाहते हैं? –

+0

कई स्तंभों को प्रासंगिक नहीं मानते हैं, अनावश्यक अनुक्रमणिका, कॉलम नाम और इस तरह से छुटकारा पाएं। – guiding5

13

ठीक है, मैं कल्पना कर सकते हैं कि आप एक साफ शुरू करना चाहते हैं। आपके पहले संस्करण रिलीज के लिए प्रोजेक्ट डेवलपमेंट मोड में होने पर आप सभी अलग माइग्रेशन फाइल नहीं चाहते हैं। हालांकि वे स्पष्ट रूप से चोट नहीं पहुंचा सकते हैं।

मूल रूप से आप क्या कर सकते, यह है।

पहले बैकअप अपने स्कीमा और डेटा।

db/schema.rb शामिल (या शामिल करना चाहिए) अपने स्कीमा का नवीनतम संस्करण। अन्यथा चलाएं:

rake db:schema:dump 

अब आप अपना माइग्रेशन फ़ोल्डर साफ़ कर सकते हैं।

तब चलाएँ:

rake db:drop 
rake db:schema:load 

पिछले आदेश db/schema.rb चलाता है और एक नया स्कीमा पैदा करते हैं। यह आपको अपने डेटाबेस के अंतिम संस्करण में लाएगा।

शो डाटाबेस कार्य

रेक -टी db

+0

रेक कहते हैं, "कार्य को कैसे बनाएं 'स्कीमा: ड्रॉप' 'नहीं जानते। मैं रूबी 1.9.3 का उपयोग कर रहा हूं और रेल 3.2.9 – gfreezy

+0

क्षमा करें एक टाइपो था। मैंने इसे सही किया (रेक डीबी: ड्रॉप) – Roger

0

आप एक में माइग्रेशन सभी बच्चों को मर्ज करने Squasher मणि उपयोग कर सकते हैं।

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