PostgreSQL नहीं जानता कि varchar
. के कॉलम को स्वचालित रूप से कैसे परिवर्तित किया जाए varchar
. की एक सरणी में . यह नहीं जानता कि आप क्या इरादा कर सकते हैं, क्योंकि यह जानने का कोई तरीका नहीं है कि आपको लगता है कि वर्तमान मान किस प्रारूप में हैं।
तो आपको यह बताने की जरूरत है; USING
. यही है खंड के लिए है।
ऐसा प्रतीत होता है कि ActiveRecord USING
. का स्पष्ट रूप से समर्थन नहीं करता है खंड (आश्चर्य की बात नहीं है, क्योंकि यह मुश्किल से सबसे बुनियादी डेटाबेस सुविधाओं का भी समर्थन करता है)। हालांकि, आप माइग्रेशन के लिए अपना खुद का SQL टेक्स्ट निर्दिष्ट कर सकते हैं।
मान लें कि आपके तार अल्पविराम से अलग हैं और उनमें स्वयं अल्पविराम नहीं हो सकते हैं, उदाहरण के लिए:
def change
change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end
(मैं स्वयं रेल का उपयोग नहीं करता और इसका परीक्षण नहीं किया है, लेकिन यह अन्यत्र उदाहरणों में प्रयुक्त वाक्य रचना के अनुरूप है)।