ऐसा लगता है कि निम्नलिखित सत्य है:
20120525005302_create_users.rbएकusersबनाने का प्रयास करेगा आपके डेटाबेस में तालिका।20120611000411_devise_create_users.rbएकusersबनाने का भी प्रयास करेगा डेटाबेस में तालिका।- आपके डेटाबेस में वर्तमान में पहले से ही एक
usersहै तालिका में है, इसलिए दूसरे माइग्रेशन पर माइग्रेशन विफल हो जाता है।
users प्राप्त करने के लिए आपके डेटाबेस में तालिका 20120611000411_devise_create_users.rb से ठीक से मेल खाने के लिए माइग्रेशन, आप दो में से एक काम कर सकते हैं:
- डेटाबेस को वापस रोल करें (या छोड़ें), और फिर माइग्रेशन को फिर से चलाएँ। (आप
20120525005302_create_users.rbको हटा सकते हैं अगर यह खाली है।) - अपना
20120611000411_devise_create_users.rbसंशोधित करें किसी भी मौजूदाusersको छोड़ने के लिए माइग्रेशन कुछ और करने से पहले टेबल। - अपना
20120611000411_devise_create_users.rbसंशोधित करें माइग्रेशन इस प्रकार है:usersबनाने के बजाय तालिका, मौजूदा तालिका को संशोधित करें।- डेटाबेस घटकों को संगत करने के लिए जोड़ें और संशोधित करें
आम तौर पर, यदि आपका एप्लिकेशन "शिशु अवस्था" में है, तो डेटाबेस को फिर से बनाना किसी एप्लिकेशन की प्रारंभिक संरचना बनाने का एक त्वरित तरीका है। हालाँकि यदि आपके पास पहले से ही आपके users . में महत्वपूर्ण डेटा है तालिका, आप इसे रखना चाहेंगे और 20120611000411_devise_create_users.rb को संशोधित करके आगे बढ़ना चाहेंगे डेटाबेस को गैर-विनाशकारी रूप से बदलने के लिए माइग्रेशन।
संदर्भ