मैं अपने प्रवास में इस तरह की बात कर रहा था:
add_column :statuses, :hold_reason, :string rescue puts "column already added"
लेकिन यह पता चला है कि, जबकि यह SQLite के लिए काम करता है, यह PostgreSQL के लिए काम नहीं करता है । ऐसा लगता है कि यदि add_column चल रहा है, भले ही अपवाद पकड़ा गया हो, लेन-देन मृत है और इसलिए माइग्रेशन कोई अतिरिक्त कार्य नहीं कर सकता है।
क्या यह जाँचने के लिए कि कोई कॉलम या टेबल पहले से मौजूद है, क्या कोई गैर-डीबी सेक्शपेल है? असफल होना, क्या वास्तव में काम करने के लिए मेरे बचाव ब्लॉक को प्राप्त करने का कोई तरीका है?