2011-02-09 17 views
6

पर डेटाबेस माइग्रेशन को रोलबैक कैसे करें मैंने केवल हेरोोक में कुछ कोड और डेटाबेस परिवर्तन तैनात किए हैं और मैं इसे वापस रोल करना चाहता हूं। मेरे पास रिलीज ऐड-ऑन है और कोड को वापस रोल करने में सक्षम था लेकिन डेटाबेस नहीं। मैंने डेटाबेस बैकअप नहीं किया है इसलिए मैं पुनर्स्थापित नहीं कर सकता। मैंने "heroku रेक डीबी: रोलबैक" की कोशिश की लेकिन यह कुछ भी नहीं किया। कोई जानता है?हेरोकू

+0

आपका डीबी: रोलबैक स्थानीय पर काम करता है? – shingara

+0

बस अपनी स्थानीय मशीन पर वापस रोलिंग, फिर एक और heroku रेक डीबी कर: माइग्रेट काम नहीं करता है? – hahuang65

+0

जॉन बेयन सही है। रोलबैक डेटा वापस नहीं लाता है। केवल डीबी स्कीमा बदल दिया गया है। – hahuang65

उत्तर

12

आपको heroku rake db:rollback चलाया जाना है जबकि अद्यतन कोड जिसमें .down माइग्रेशन हैरोकू में तैनात किया गया है। उसके बाद, आप कोड रोलबैक कर सकते हैं।

+0

यह गायब कदम था, यह देखने के लिए रोलबैक में कोई माइग्रेशन नहीं था कि मैं कोड को पहले से ही रोलबैक करता हूं, धन्यवाद! – Bob

0

डीबी: रोलबैक निष्पादित अंतिम माइग्रेशन फ़ाइल को रोलबैक करेगा - क्या आपको यकीन है कि यह नहीं किया गया है? आप माइग्रेशन है कि आप अपने तैनाती के लिए रोलबैक करना चाहते हैं की संख्या पहचान करने में सक्षम हैं, तो आप कर सकते हैं

rake db:rollback STEP=3 

जो अपने पिछले 3 माइग्रेशन में नीचे विधि चलाता है - यह निश्चित रूप से है अगर आप कोड जोड़ने के बाद अप माइग्रेशन में जो कुछ किया गया था उसे वापस करने के लिए माइग्रेशन डाउन माइग्रेशन :)