PostgreSQL non sa come convertire automaticamente una colonna di varchar
in un array di varchar
. Non sa cosa potresti volere, perché non ha modo di sapere in quale formato pensi che siano i valori correnti.
Quindi devi dirlo; questo è ciò che il USING
la clausola è per.
ActiveRecord non sembra supportare esplicitamente USING
clausola (non sorprendente, in quanto supporta a malapena anche le funzionalità di database più basilari). Tuttavia, puoi specificare il tuo testo SQL per la migrazione.
Supponendo che le tue stringhe siano separate da virgole e potrebbero non contenere virgole, ad esempio:
def change
change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end
(Non uso Rails da solo e non l'ho testato, ma è coerente con la sintassi usata negli esempi altrove).