क्या कोई त्वरित रेक डीबी है: सभी माइग्रेशन के लिए रोलबैक कमांड?रेक डीबी: माइग्रेट - मैं सभी माइग्रेशन को पूर्ववत कैसे करूं और उन्हें दोबारा
उत्तर
जबकि @ ऑरलैंडोस की प्रतिक्रिया सही है, rake db:reset
सभी माइग्रेशन को दोबारा नहीं करता है, और जैसा कि वह कहता है, अंतिम स्कीमा से डेटा लोड करता है। आप सभी माइग्रेशन पूर्ववत और फिर फिर से करना उन्हें चाहते हैं, आप का उपयोग करना चाहिए:
rake db:migrate:reset #runs db:drop db:create db:migrate
आपको इस पोस्ट के बारे में अधिक जानकारी देख सकते हैं: Difference between rake db:migrate db:reset and db:schema:load
बस rake db:reset
का उपयोग करें, जो आपके डेटाबेस को छोड़ देगा (सभी माइग्रेशन को पूर्ववत करने के समान) और अंतिम स्कीमा पर रीसेट करें।
अद्यतन: एक और सही दृष्टिकोण rake db:migrate:reset
का उपयोग करेगा। यह डेटाबेस को छोड़ देगा, इसे फिर से बनाएगा और नवीनतम स्कीमा पर रीसेट करने के बजाय सभी माइग्रेशन चलाएगा।
यदि आप वास्तव में चाहते हैं रोलबैक माइग्रेशन की सभी, और न सिर्फ एक प्राचीन राज्य के लिए डेटाबेस ले सकते हैं या पिछले स्कीमा के लिए, आप चलाने के लिए है:
rake db:migrate VERSION=0
यह वास्तव में रोलबैक जाएगा नीचे सभी तरह से हर प्रवास और ensu फिर हर प्रवासन उलटा है।
अब आप जारी
rake db:migrate:status
आपको लगता है कि सभी माइग्रेशन अभी भी देखते हैं देखेंगे लेकिन वे एक 'नीचे' (लागू नहीं) राज्य में हैं, तो।
अन्य आदेशों का संकेत देने वाले एक rake db:reset
या rake db:drop
(जैसे @Orlando या @Alex फालके द्वारा जवाब के रूप में) किसी भी रोलबैक नहीं करेंगे: कि, वे यह सुनिश्चित नहीं है कि हर प्रवास प्रतिवर्ती है।
इसके अलावा, rake db:drop
चलाया नहीं जा सकता है, जबकि डेटाबेस को अन्य उपयोगकर्ताओं द्वारा एक्सेस किया जा रहा है, जबकि रोलबैक लाइव किया जा सकता है (भले ही इसे आम तौर पर अनुशंसित नहीं किया जाता है)। और आखिरी लेकिन कम से कम नहीं, डेटाबेस को छोड़ना और पुनर्निर्माण करना स्कीमा माइग्रेशन टेबल को भी हटा देगा: यदि कोई डेटाबेस छोड़ने के बाद rake db:migrate:status
चलाता है, तो उसे जवाब दिया जाएगा "स्कीमा माइग्रेशन टेबल अभी तक मौजूद नहीं है" और इसमें कोई सुराग नहीं होगा जिसके बारे में माइग्रेशन लागू किया जा सकता है (जब तक कि वह इसे अभी तक जानता है या उन्हें सूचीबद्ध कर सकता है)।
- 1. रेल डीबी: माइग्रेट बनाम रेक डीबी: माइग्रेट
- 2. आप असफल माइग्रेशन कैसे छोड़ते हैं? (रेक डीबी: माइग्रेट)
- 3. डीबी: माइग्रेट सरल माइग्रेशन
- 4. रेक डीबी: माइग्रेट नए माइग्रेशन का पता नहीं लगाता है?
- 5. कैसे रेक डीबी: ड्रॉप और रेक डीबी: Heroku पर बनाएँ?
- 6. विषम रेक डीबी: माइग्रेट आउटपुट
- 7. वास्तव में रेक डीबी क्या करता है: माइग्रेट करें?
- 8. रेक डीबी: माइग्रेट उत्पादन में काम नहीं कर रहा है
- 9. रेक डीबी: माइग्रेट और रेक डीबी: टेस्ट डेटाबेस पर दोनों काम बनाएं, विकास डेटाबेस
- 10. रेक डीबी :: माइग्रेट वास्तव में कैसे काम करता है
- 11. रेक डीबी का उपयोग करना: सीधे माइग्रेट करें, वेनिला एसक्यूएल
- 12. हेनोकू रेक डीबी चलाना: जेनकिंस बिल्ड से माइग्रेट
- 13. मैं कैसे बता सकता हूं कि 'रेक डीबी: माइग्रेट' उन परिवर्तनों को लागू करने से पहले क्या परिवर्तन करेगा?
- 14. रेक डीबी: माइग्रेट काम नहीं कर रहा है
- 15. रेक डीबी: बनाम बनाम डीबी: बनाएं: सभी
- 16. रेक डीबी का उपयोग करना: किसी अन्य कार्य पत्तियां के अंदर माइग्रेट माइग्रेशन लंबित
- 17. सिनात्रा का उपयोग करते समय मैं एक मणि से रेक कार्यों को कैसे आयात करूं?
- 18. रेक डीबी: गिराए गए टेबल के साथ schema.rb को अपडेट करना माइग्रेट करें
- 19. रेक डीबी: माइग्रेट विकास में चलाता है एडब्ल्यूएस बीनस्टॉक
- 20. रेक डीबी: माइग्रेट करें VERSION = 0 तालिका मौजूद नहीं है
- 21. क्या मुझे "डीबी: माइग्रेट" पूर्ववत करने के बाद "रेल उत्पन्न करने वाले रेल" को पूर्ववत करने की आवश्यकता होगी?
- 22. मॉडल स्कॉप्स रेक डीबी तोड़ रहे हैं: माइग्रेट - रेल 3.2.3 पोस्टग्रेज 9.1.3
- 23. मैं उपनिर्देशिका पर "svn स्विच" को पूर्ववत कैसे करूं?
- 24. मुझे 'रेक डीबी: माइग्रेट RAILS_ENV = test' चलाने के लिए क्यों कहा जाता है?
- 25. मैं TortoiseGit में "समाधान" को पूर्ववत कैसे करूं?
- 26. बंडल निष्पादन रेक डीबी: माइग्रेट कारण "निष्पादन योग्य रेक नहीं ढूंढ सकता" त्रुटि
- 27. रेक डीबी: निर्माण - संयोजन मुद्दे
- 28. मैं रेक रेक से आईआरबी कंसोल कैसे शुरू करूं?
- 29. फ्लाईवे डीबी/माइग्रेशन
- 30. इकाई फ्रेमवर्क - प्रारंभ करें - पूर्ववत/रोलबैक सभी माइग्रेशन
असली सही उत्तर है –
यह उत्तर भ्रम से बचने के लिए चुना जाना चाहिए। –
'रेक डीबी: माइग्रेट: रीसेट 'वास्तव में किसी माइग्रेशन को रोलबैक नहीं करता है, यही सवाल वास्तव में पूछ रहा है। –