मैं अपने माइग्रेशन में बात इस तरह का कर रहा था:रेल प्रवास: अस्तित्व की जांच करें और जा रहे रहें?
add_column :statuses, :hold_reason, :string rescue puts "column already added"
लेकिन यह पता चला है कि, जबकि इस SQLite के लिए काम करता है, यह PostgreSQL के लिए काम नहीं करता। ऐसा लगता है कि add_column उड़ाता है, भले ही अपवाद पकड़ा गया हो, लेनदेन मर चुका है और इसलिए माइग्रेशन कोई अतिरिक्त काम नहीं कर सकता है।
क्या कोई गैर-डीबी सेपेसिफिक यह जांचने के तरीके हैं कि कोई कॉलम या तालिका पहले से मौजूद है या नहीं? यह असफल रहा, क्या मेरे बचाव ब्लॉक को वास्तव में काम करने का कोई तरीका है?
यह सबसे अच्छा pract माना जाता है बर्फ जोड़ने के लिए यह जांचने के लिए कि कोई कॉलम/टेबल मौजूद है या नहीं? (मुझे पता है कि यह हाथों में समस्या पर निर्भर करता है) –
क्या यह रोलबैक के साथ काम करता है अगर मैं इसे परिवर्तन विधि में परिभाषित करता हूं? – dardub
हाँ रोलबैक एक मुद्दा होगा ... हमें यकीन नहीं है कि हमें कॉलम को हटा देना चाहिए या नहीं .. क्योंकि हम पिछले राज्य को रिकॉर्ड नहीं कर रहे हैं। – songyy