PostgreSQL tidak tahu cara otomatis mengonversi kolom varchar
ke dalam larik varchar
. Ia tidak tahu apa yang mungkin Anda maksudkan, karena ia tidak memiliki cara untuk mengetahui format apa yang menurut Anda berisi nilai-nilai saat ini.
Jadi, Anda perlu menceritakannya; itulah yang USING
klausa adalah untuk.
ActiveRecord tampaknya tidak secara eksplisit mendukung USING
klausa (tidak mengherankan, karena hampir tidak mendukung bahkan fitur database yang paling dasar). Anda dapat menentukan teks SQL Anda sendiri untuk migrasi.
Dengan asumsi string Anda dipisahkan koma dan mungkin tidak mengandung koma, misalnya:
def change
change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end
(Saya sendiri tidak menggunakan Rails dan belum menguji ini, tetapi konsisten dengan sintaks yang digunakan dalam contoh di tempat lain).