2014-04-24 7 views
5

मैं आरओआर के लिए नया हूं और मैं माइकल हार्टल के ट्यूटोरियल का अनुसरण कर रहा हूं (इसलिए मैं जिस शब्दावली का उपयोग कर रहा हूं उसे ठीक करने के लिए स्वतंत्र महसूस करें)। अध्याय 2 में, मैं इन पंक्तियों चलाकर एक उपयोगकर्ता तालिका बनाया:क्या मुझे "डीबी: माइग्रेट" पूर्ववत करने के बाद "रेल उत्पन्न करने वाले रेल" को पूर्ववत करने की आवश्यकता होगी?

$ rails generate scaffold User name:string email:string 
$ bundle exec rake db:migrate 

फिर, मैं एक Microposts तालिका बनाने के लिए प्रयास करने के लिए नीचे दिए गए कोड भाग गया (हालांकि, मैं Micropost एक 'आर' के बिना गलत वर्तनी!) ..

$ rails generate scaffold Miropost content:string user_id:integer 
$ bundle exec rake db:migrate 

अब मैं बनाई गई मिरोपॉस्ट तालिका को हटाना चाहता हूं। Stackoverflow.com में खोज करने के बाद, मैं समझता हूं कि मैं rake db:migrate:reset चलाकर डेटाबेस माइग्रेशन (यानी, डीबी: माइग्रेट) को पूर्ववत कर सकता हूं। मेरा सवाल है कि क्या मुझे "रेलगाड़ी उत्पन्न करने वाले रेल" को पूर्ववत करने की आवश्यकता होगी? और जब मचानों का अस्तित्व समाप्त होता है?

उत्तर

11

सबसे पहले आपको डीबी से परिवर्तनों को रोलबैक करने की आवश्यकता होगी। मानते हैं कि Miropost के लिए उत्पन्न माइग्रेशन आपके db में नवीनतम माइग्रेशन है।

rails destroy scaffold Miropost content:string user_id:integer 

फिर तुम सब करने की जरूरत है सही वर्तनी के साथ पाड़ पुन: बनाने और चलाने के rake db:migrate

+1

धन्यवाद करने के लिए है:

बस

rake db:rollback ## This will drop the table miroposts 

इस से मौजूदा पाड़ को नष्ट करने के बाद चलाने के! उसने जादू की तरह काम किया। सिर्फ मेरी स्कूली शिक्षा के लाभ के लिए, क्या मचान तब तक नहीं हटाए जाते जब तक आप उन्हें स्पष्ट रूप से नष्ट नहीं करते? और जब कोई 'रेक डीबी: माइग्रेट' करता है, तो क्या यह हमेशा बनाए गए सबसे हालिया मचान का संदर्भ देता है? – ayjay

+2

'मचान' केवल तभी हटा दिया जाएगा जब आप स्पष्ट रूप से 'रेलों को मचान नष्ट कर दें ...' आदेश के साथ हटा दें। 'रेक डीबी: माइग्रेट' सभी लंबित माइग्रेशन को 'डीबी/माइग्रेट' फ़ोल्डर में माइग्रेट करेगा। –

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